2014-04-04 89 views
-1

以上帝的名义。我的Mysql不知道触发器,我该怎么办?

你好。我想在表上的数据库中创建一个触发器,但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语法错误; (SELECT COUNT(*)FROM tbl_users WHERE username IN(SELECT username FROM ins'at line 4)

+0

我不明白的问题,你有什么问题 –

+0

我的问题是MySQL的不知道触发 –

+0

的MySQL知道触发他们是谁?。好伙伴其实 –

回答

0

您可以使用相同的方法来查找与您的MySQL服务器版本相对应的手册在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 ; 
相关问题