【发布时间】:2013-03-10 14:18:50
【问题描述】:
您好,我正在尝试使用触发器,我的 MySQL 版本是 5.5.8
问题是当我创建触发器时,PHPMyadmin 说它创建成功,
这是我的触发器
DELIMITER $$
CREATE TRIGGER `check_pupil_before_insert` BEFORE INSERT ON `pupil_data`
FOR EACH ROW BEGIN
IF CHAR_LENGTH( NEW.DateOfBirth ) < 4 THEN
SIGNAL SQLSTATE '12345'
SET MESSAGE_TEXT := 'check constraint on pupil_data.DateOfBirth failed';
END IF;
END$$
DELIMITER ;
它说
Your SQL query has been executed successfully
DELIMITER $$ CREATE TRIGGER `check_pupil_before_insert` BEFORE INSERT ON `pupil_data`
FOR EACH
ROW BEGIN
IF CHAR_LENGTH( NEW.DateOfBirth ) <4
THEN SIGNAL SQLSTATE '12345'
SET MESSAGE_TEXT := 'check constraint on pupil_data.DateOfBirth failed';
END IF ;
但是当我
select * from information_schema.triggers
MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0843 sec )
SELECT *
FROM information_schema.triggers
LIMIT 0 , 30
为什么会这样,请帮助我,提前谢谢。
【问题讨论】:
-
什么返回 SHOW CREATE TRIGGER 查询?
-
an error #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在第 1 行的 '' 附近使用的正确语法
-
嗯,SHOW CREATE TRIGGER 应该显示触发器的信息或返回空结果集。 ...尝试 new_developer 的解决方案。
-
@Devart 感谢您的帮助。 new_developers 的建议效果很好。
标签: php mysql sql triggers phpmyadmin