1:delimiter //
2:CREATE TRIGGER `member_point_insert`
3:AFTER INSERT ON `sdb_member_mattrvalue`
4:FOR EACH ROW
5:BEGIN
6:
7:UPDATE `sdb_members` SET point = point+100
8:WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id = NEW.member_id AND attr_id = 15
9:)
10:;
11:END;
12://这是我写的触发器。报错信息:错误
您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。ERROR: 未知的标点符号字符串 @ 260
STR: //
SQL: CREATE TRIGGER `member_point_insert`
AFTER INSERT ON `sdb_member_mattrvalue`
FOR EACH ROW
BEGINUPDATE `sdb_members` SET point = point+100
WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id = NEW.member_id AND attr_id = 15
)
;
END;
//
SQL 查询: CREATE TRIGGER `member_point_insert` AFTER INSERT ON `sdb_member_mattrvalue` FOR EACH ROW BEGIN UPDATE `sdb_members` SET point = point+100 WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id = NEW.member_id AND attr_id = 15 ) ; END; // MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
//' at line 10
------------------------------------------------------------------------------------------
这段代码是在虚拟主机上执行的,因为该数据库用户不够,所有我用最高权限root登录的phpmyadmin执行的。
虚拟主机上的root用户 不支持远程连接。第9行和第10行我是故意分成两行的。就是为了,看看到底是哪的问题。触发器上写的表是 shopex的表。错误信息应该和shopex没什么关系。这个问题一直困扰我老几天了,shopex 不开源,所有这块我只能用触发器来实现。高手请指点一下。小弟在这先谢过了。
2:CREATE TRIGGER `member_point_insert`
3:AFTER INSERT ON `sdb_member_mattrvalue`
4:FOR EACH ROW
5:BEGIN
6:
7:UPDATE `sdb_members` SET point = point+100
8:WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id = NEW.member_id AND attr_id = 15
9:)
10:;
11:END;
12://这是我写的触发器。报错信息:错误
您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。ERROR: 未知的标点符号字符串 @ 260
STR: //
SQL: CREATE TRIGGER `member_point_insert`
AFTER INSERT ON `sdb_member_mattrvalue`
FOR EACH ROW
BEGINUPDATE `sdb_members` SET point = point+100
WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id = NEW.member_id AND attr_id = 15
)
;
END;
//
SQL 查询: CREATE TRIGGER `member_point_insert` AFTER INSERT ON `sdb_member_mattrvalue` FOR EACH ROW BEGIN UPDATE `sdb_members` SET point = point+100 WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id = NEW.member_id AND attr_id = 15 ) ; END; // MySQL 返回: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
//' at line 10
------------------------------------------------------------------------------------------
这段代码是在虚拟主机上执行的,因为该数据库用户不够,所有我用最高权限root登录的phpmyadmin执行的。
虚拟主机上的root用户 不支持远程连接。第9行和第10行我是故意分成两行的。就是为了,看看到底是哪的问题。触发器上写的表是 shopex的表。错误信息应该和shopex没什么关系。这个问题一直困扰我老几天了,shopex 不开源,所有这块我只能用触发器来实现。高手请指点一下。小弟在这先谢过了。
mysql> CREATE TRIGGER `member_point_insert`
-> AFTER INSERT ON `sdb_member_mattrvalue`
-> FOR EACH ROW
-> BEGIN
->
-> UPDATE `sdb_members` SET point = point+100
-> WHERE uname = (SELECT value FROM `sdb_member_mattrvalue` WHERE member_id
= NEW.member_id AND attr_id = 15
-> )
-> ;
-> END;
-> //
Query OK, 0 rows affected (0.11 sec)mysql>
AFTER INSERT ON `sdb_member_mattrvalue`
FOR EACH ROW
set @a=1;当您的问题得到解答后请及时结贴.
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html