1

タイムスタンプタイプの「作成済み」と「変更済み」の2つの列を持つテーブルを作成したいと思います。私は彼らにデフォルト値を持たせたくありません。しかし、それらを作成すると、少なくとも1つはデフォルトとして、また更新時に自動的にCURRENT_TIMESTAMPが設定されます。

自分の列のデフォルト値または更新値なしでタイプタイムスタンプを設定するにはどうすればよいですか?

編集:MySQLを使用しています

4

1 に答える 1

1

SQL Serverを使用している場合、timestampタイプは実際の日付または時刻の値を格納するためではなく、行のバージョン管理に使用されます。 MSDNを参照してください

datetimeデータ型を使用して列を作成してから、トリガーを使用しcreatedて値を設定できます。modified

CREATE TRIGGER trg_SetDateCreated ON MyTable
FOR INSERT AS 
    UPDATE MyTable 
    SET created = CURRENT_TIMESTAMP
    WHERE MyTable.id = (SELECT Id FROM Inserted);
GO

CREATE TRIGGER trg_SetDateModified ON MyTable
FOR UPDATE AS 
    UPDATE MyTable
    SET modified = CURRENT_TIMESTAMP
    WHERE MyTable.id = (SELECT Id FROM Inserted);
GO
于 2012-07-15T01:43:46.010 に答える