我的Mysql不知道触发器,我该怎么办?

时间:2014-04-04 10:41:01

标签: mysql triggers

以上帝的名义。

您好。我想在表上的数据库中创建一个触发器,但mysql不知道触发器。 我使用的是XAMPP 1.7.3(php 5.3.1,Mysql 5.1.41)。

CREATE TRIGGER TRIGGER_NAME ON TABLE_NAME (FOR/BEFOR/AFTER)  {INSERT,UPDATE,...}
...

请精确触发图像上的颜色:

dont know trigger

 CREATE TRIGGER `TR_INSERT`
BEFORE INSERT ON `tbl_users`

IF ( SELECT COUNT(*) FROM tbl_users WHERE username IN ( SELECT username FROM inserted))>1
begin
PRINT 'THIS NAME IS EXISTS'
ROLLBACK TRANSACTION
end

错误:#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以便在'IF(SELECT COUNT(*)FROM tbl_users WHERE username IN(第4行的SELECT username FROM ins')附近使用正确的语法(

1 个答案:

答案 0 :(得分:0)

您可以使用username上的唯一键来实现相同的功能。但是为了学习触发器:

delimiter |
CREATE TRIGGER `TR_INSERT` BEFORE INSERT ON `tbl_users`
FOR EACH ROW BEGIN
   IF (SELECT COUNT(*) FROM tbl_users WHERE username IN (NEW.username)) > 1
   THEN
      SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'THIS NAME ALREADY EXISTS';
   END IF;
END
|
delimiter ;