我的Mysql不知道触发器,我能做什么?

我的Mysql不知道触发器,我能做什么?,mysql,triggers,Mysql,Triggers,以上帝的名义 你好。我想在表上的数据库中创建一个触发器,但mysql不知道触发器。 我使用了XAMPP1.7.3HP 5.3.1和Mysql 5.1.41 CREATE TRIGGER TRIGGER_NAME ON TABLE_NAME (FOR/BEFOR/AFTER) {INSERT,UPDATE,...} ... 请精确触发图像上的颜色: 错误:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第4行的“如果从tbl_用户中选择COUNT*WHERE

以上帝的名义

你好。我想在表上的数据库中创建一个触发器,但mysql不知道触发器。 我使用了XAMPP1.7.3HP 5.3.1和Mysql 5.1.41

CREATE TRIGGER TRIGGER_NAME ON TABLE_NAME (FOR/BEFOR/AFTER)  {INSERT,UPDATE,...}
...
请精确触发图像上的颜色:


错误:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第4行的“如果从tbl_用户中选择COUNT*WHERE username IN SELECT username FROM ins”附近使用的正确语法,您可以通过用户名上的唯一键实现相同的功能。但为了了解触发器:

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 ;

我不明白这个问题。你有什么问题?我的问题是mysql不知道触发器。mysql知道触发器。实际上他们是好朋友。在tbl_用户上为每行插入之前创建触发器TR_INSERT如果…对不起,为什么我运行TR_INSERT mysql show error?
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 ;