tags

[3]

タグ「日付」での検索

SQLiteでデータ更新(INSERT)時に自動で現在の時刻を入れるSQL文を走らせる

あるテーブルに対して 【UPDATE】(データ更新)が行われた時に「現在時刻をセットするSQL文」を実行するにはSQLiteのトリガー機能を使います。

■データ更新時に現在時刻をセットするトリガー

CREATE TRIGGER my_trigger AFTER UPDATE ON my_table
BEGIN
    UPDATE my_table SET modified_date = datetime('now', 'localtime') WHERE data_id = OLD.data_id ;
END;

テーブル `my_table` に何かしらの更新があった時に


```UPDATE``` を ```INSERT```,```DELETE``` に変更すると、【INSERT】(データ登録)、【DELETE】(データ削除)時にSQL文が実行
されるようになります。


#### ■【AFTER】【BEFORE】
【AFTER】のところを【BEFORE】にするとテーブルの更新前に指定したSQL文が動きます。


#### ■【OLD】と【NEW】
【OLD】はUPDATE と DELETE 時に有効です。  
【NEW】はUPDATE と INSERT 時に有効です。  
INSERT時に OLD.data_id とやるとエラーとなります。


#### ■作成したトリガーの確認
```
SELECT * FROM sqlite_master WHERE type = 'trigger';
```


#### ■トリガーの削除
```
DROP trigger my_trigger;
```

No.961
07/14 10:47

edit

日付

SQLiteでデータ挿入(INSERT)時に自動で現在の時刻を入れるようにする

テーブルを作成するときに以下のようにします。

CREATE TABLE test_dt (
  data_id integer PRIMARY KEY AUTOINCREMENT,
  user_name varchar NOT NULL,
  modified_date TIMESTAMP DEFAULT(DATETIME(‘now’,’localtime’))
);

このようにすると `modified_date` カラムはデータ登録に何も入力しなくても現在時刻が入力されます。

No.960
07/13 23:17

edit

日付

SQLiteでINSERT, UPDATE 時に現在の日付を入れるSQL文

SQLite3で現在の日付時刻は

datetime('now', 'localtime')

です。

INSERTやUPDATE時に現在の日付を入れるには以下のようにします

INSERT INTO
	my_table (name, modified_date)
VALUES
	'hogehoge, datetime('now', 'localtime');
No.952
07/14 10:48

edit

日付