create trigger tri_users
before insert on users
for each row
begin
insert into users1 (usernmae,password) values ('999','999');
set new.id = 100;
endmysql是不是不支持begin end语句啊,去掉begin end就能建立触发器了,但是不能一次触发多条语句,网上的人又说mysql也能用begin end的,可是我就是不成功,还是说我用phpMyAdmin的关系,真心不懂,在线求结果!!!
before insert on users
for each row
begin
insert into users1 (usernmae,password) values ('999','999');
set new.id = 100;
endmysql是不是不支持begin end语句啊,去掉begin end就能建立触发器了,但是不能一次触发多条语句,网上的人又说mysql也能用begin end的,可是我就是不成功,还是说我用phpMyAdmin的关系,真心不懂,在线求结果!!!
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END
|
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END$$
DELIMITER ;
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END$$
DELIMITER ;
mysql> CREATE TRIGGER testref BEFORE INSERT ON test1
-> FOR EACH ROW BEGIN
-> INSERT INTO test2 SET a2 = NEW.a1;
-> DELETE FROM test3 WHERE a3 = NEW.a1;
-> UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
-> END$$
Query OK, 0 rows affected (0.05 sec)mysql> DELIMITER ;
mysql>
mysql> CREATE TRIGGER testref BEFORE INSERT ON test1
-> FOR EACH ROW BEGIN
-> INSERT INTO test2 SET a2 = NEW.a1;
-> DELETE FROM test3 WHERE a3 = NEW.a1;
-> UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
-> END$$
Query OK, 0 rows affected (0.05 sec)mysql> DELIMITER ;
mysql>mysql> DELIMITER $$
mysql> CREATE TRIGGER testref BEFORE INSERT ON test1
-> FOR EACH ROW BEGIN
-> INSERT INTO test2 SET a2 = NEW.a1;
-> DELETE FROM test3 WHERE a3 = NEW.a1;
-> UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
-> END$$
Query OK, 0 rows affected (0.05 sec)mysql> DELIMITER ;
mysql>你用的是什么版本的mysql,我的5.5版本不支持,不过你的语法的确能用,谢谢啦
你在建立触发器之前,先执行这个语句 DELIMITER // ;(这一句把原来默认的查询结尾定界符--分号 改为 //(两个反斜杠),然后,你就可以在begin ....end 中间 的每一句加 分号,最后在end的 后面,以// 作结束。 因为新的语句定界符已经是// 。触发器建立后,你可以根据情况,把查询定界符// 改为原来的分号 , 使用 delimiter ;// 语句
不然读到触发器中的分号就执行,语法不全,当然报错了