대학 데이터가있는 데이터베이스가 있습니다. 나는 대학과 학생 2 테이블을 포함하는 방아쇠를 만들고 싶습니다.MySQL에서 트리거가 작동하지 않습니다.
CREATE TABLE IF NOT EXISTS `university` (
`name` varchar(80) COLLATE utf8_bin NOT NULL,
`uni_id` int(11) NOT NULL,
`students` int(11) NOT NULL,
PRIMARY KEY (`uni_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE IF NOT EXISTS `student` (
`firstName` varchar(20) COLLATE utf8_bin NOT NULL,
`lastName` varchar(20) COLLATE utf8_bin NOT NULL,
`student_id` int(11) NOT NULL,
`id_number` varchar(100) COLLATE utf8_bin NOT NULL,
`current_address` varchar(100) COLLATE utf8_bin NOT NULL,
`current_phone` varchar(16) COLLATE utf8_bin NOT NULL,
`date_of_birth` date NOT NULL,
`gender` varchar(100) COLLATE utf8_bin NOT NULL,
`year_of_study` int(11) NOT NULL,
`department_id` int(11) NOT NULL,
`uniId` int(11) NOT NULL,
`study_cycle` varchar(50) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`student_id`,`id_number`),
UNIQUE KEY `student_id` (`student_id`),
UNIQUE KEY `id_number` (`id_number`),
KEY `lastName` (`lastName`),
KEY `uni_id` (`uniId`),
KEY `uniId` (`uniId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
나는 테이블 student
에 새 항목이 후 트리거가 테이블 university
의 students
증가합니다.
CREATE TRIGGER s AFTER
INSERT ON student
FOR EACH ROW
BEGIN
UPDATE university SET students=students+1
WHERE uni_id=NEW.uni_id;
END;
실행하려고하면 오류가 발생합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
오, 고맙습니다, 지금 작동합니다! – user2562246