2014-04-04 88 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 ; 
相關問題