错误消息是: SQL 错误(1064):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的 '' 附近使用正确的语法。
第 5 行是代码中包含第一个分号的行。您忘记了 DELIMITER 重新分配。
所以
DELIMITER ;;
CREATE TRIGGER `db_name`.`trigger_name` BEFORE DELETE ON `db_name`.`table1_name`
FOR EACH ROW
BEGIN
INSERT INTO `db_name`.`table2_name`(table2_id,`comment`,record_created_date)
VALUES (OLD.id, OLD.`comment`, NOW());
END
;;
DELIMITER ;
但是您的触发器仅包含一个语句,因此请删除 BEGIN 和 END 行。在这种情况下,不需要重新分配 DELIMITER。
CREATE TRIGGER `db_name`.`trigger_name` BEFORE DELETE ON `db_name`.`table1_name`
FOR EACH ROW
INSERT INTO `db_name`.`table2_name`(table2_id,`comment`,record_created_date)
VALUES (OLD.id, OLD.`comment`, NOW());
PS。对列使用 autoutilizing ( DEFAULT CURRENT_TIMESTAMP
) db_name.table2_name.record_created_date
,您可以将其从INSERT
.