私はこのMySQLテーブルを持っています:
create table test.customer (
ID INTEGER,
CREATION_TIME DATETIME,
CREATION_USER VARCHAR(50),
CHANGE_TIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
CHANGE_USER VARCHAR(50),
PRIMARY KEY(ID)
);
ロギング目的でユーザーとタイムスタンプを自動的に設定したい。挿入の前にトリガーが 1 つあります (実際には、creation_time 用にのみ記述されています)。
delimiter #
create trigger test.customer_creation
before insert on test.customer
for each row
begin
set NEW.CREATION_TIME = NOW();
IF (NEW.CREATION_USER is null or NEW.CREATION_USER = '')
THEN set NEW.CREATION_USER = USER();
end IF;
end #
delimiter ;
しかし、CHANGE_USER だけのトリガーは本当に必要ありません。DEFAULT USER() のようなもので CHANGE_USER を設定する可能性はありますか? または、追加のトリガーを作成する必要がありますか?