我在MySQL中有一个表,其中包含4个字段,分别为id
,name
,gender
和timestamp
。
时间戳的默认值为CURRENT_TIMESTAMP
,因此如果名称或性别发生更改,时间戳将更新为当前日期和时间。
我想从更新该时间戳中排除性别字段。
这可能吗?
我会使用MySQL触发器来完成此操作。您没有提供表名,所以我称您的表为PERSON。
触发器应如下所示:
delimiter ;;
DROP TRIGGER IF EXISTS `TRIGGER_PERSON_AFTER_UPDATE`;;
CREATE TRIGGER `TRIGGER_PERSON_AFTER_UPDATE` AFTER UPDATE ON PERSON
FOR EACH ROW
BEGIN
IF (NEW.name != OLD.name) THEN
NEW.time_stamp = CURRENT_TIMESTAMP;
END IF;
END;;
delimiter ;
更新gender
时,您必须为timestamp
指定相同的值。我假设如果您与gender
一起更改其他字段,那么时间戳应该更新。
UPDATE my_table SET gender = ?, `timestamp`=`timestamp`