以上帝的名义。
您好。我想在表上的数据库中创建一个触发器,但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,...}
...
请精确触发图像上的颜色:
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')附近使用正确的语法(
答案 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 ;