【发布时间】:2017-11-27 05:46:29
【问题描述】:
我正在创建一个触发器,当它从学生表中删除时保存历史记录,但是当我执行触发器代码来创建它时,我收到错误消息“对不起,发生了意外错误!”你真的不知道该怎么做。
学生桌:
CREATE TABLE `Student` (
`IDstudent` varchar(5) COLLATE utf32_spanish_ci NOT NULL,
`Names` varchar(40) COLLATE utf32_spanish_ci NOT NULL,
`SecNames` varchar(40) COLLATE utf32_spanish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_spanish_ci;
ALTER TABLE `Student`
ADD PRIMARY KEY (`IDstudent`);
COMMIT;
已删除学生表:
CREATE TABLE `DeletedStudents` (
`IDstudent ` varchar(5) COLLATE utf32_spanish_ci NOT NULL,
`Names ` varchar(30) COLLATE utf32_spanish_ci NOT NULL,
`SecNames ` varchar(30) COLLATE utf32_spanish_ci NOT NULL,
`DateDeleted` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf32 COLLATE=utf32_spanish_ci;
ALTER TABLE `DeletedStudents`
ADD PRIMARY KEY (`IDstudent`);
ALTER TABLE `DeletedStudents`
ADD CONSTRAINT `DeletedStudents_ibfk_1` FOREIGN KEY (`IDstudent`)
REFERENCES `Student` (`IDstudent`);
COMMIT;
触发器:
DELIMITER
\\
CREATE TRIGGER TR_Delete_Student AFTER DELETE
ON
Student FOR EACH ROW
BEGIN
INSERT INTO DeletedStudents(
IDstudent,
Names,
SecNames,
DateDeleted
)
VALUES(
old.IDstudent,
old.Names,
old.SecNames,
NOW()) ;
END \\
DELIMITER
;
【问题讨论】:
-
什么时候执行什么代码?
-
触发代码,抱歉我没有指定
-
这是在创建触发器时还是在使用时?
-
你有一堆不匹配的表和列名。请提供minimal reproducible example。
-
Sorry an unexpected error happened!不是来自 MySQL 的错误。
标签: mysql