谁帮我看看这个1064错误是啥原因

wise019 2013-05-29 03:28:58
错误
SQL 查询:

CREATE TRIGGER order_state_change AFTER UPDATE ON ORDER FOR EACH ROW BEGIN IF( OLD.payment_amount >0 ) THEN IF( OLD.state !=0 && NEW.state =0 ) THEN UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id;


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 'order
FOR EACH ROW BEGIN
IF (OLD.payment_amount > 0) THEN
    IF (OLD.state!' at line 1
...全文
84 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-05-29
  • 打赏
  • 举报
回复
到MYSQL的命令行工具中去执行。 或者在图形工具中设置 delimiter
wise019 2013-05-29
  • 打赏
  • 举报
回复
引用 6 楼 ACMAIN_CHM 的回复:
DELIMITER //
CREATE TRIGGER order_state_change AFTER UPDATE ON `ORDER` 
FOR EACH ROW 
BEGIN 
	IF( OLD.payment_amount >0 ) THEN 
		IF( OLD.state !=0 && NEW.state =0 ) THEN 
			UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id;
		END IF
	END IF
END
//
DELIMITER ;
提示错误如下 错误 您的 SQL 查询可能有错。如果可能的话,以下会列出 MySQL 服务器的错误输出,这可能对您解决问题有一定的帮助作用。 ERROR: 未知的标点符号字符串 @ 11 STR: // SQL: DELIMITER // CREATE TRIGGER order_state_change AFTER UPDATE ON `ORDER` FOR EACH ROW BEGIN IF( OLD.payment_amount >0 ) THEN IF( OLD.state !=0 && NEW.state =0 ) THEN UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id; SQL 查询: DELIMITER // CREATE TRIGGER order_state_change AFTER UPDATE ON `ORDER` FOR EACH ROW BEGIN IF( OLD.payment_amount >0 ) THEN IF( OLD.state !=0 && NEW.state =0 ) THEN UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id; 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 'DELIMITER // CREATE TRIGGER order_state_change AFTER UPDATE ON `ORDER` FOR EA' at line 1
ACMAIN_CHM 2013-05-29
  • 打赏
  • 举报
回复
DELIMITER //
CREATE TRIGGER order_state_change AFTER UPDATE ON `ORDER` 
FOR EACH ROW 
BEGIN 
	IF( OLD.payment_amount >0 ) THEN 
		IF( OLD.state !=0 && NEW.state =0 ) THEN 
			UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id;
		END IF
	END IF
END
//
DELIMITER ;
wwwwb 2013-05-29
  • 打赏
  • 举报
回复
DELIMITER $$
DROP TRIGGER IF EXISTS order_state_change$$
CREATE TRIGGER order_state_change AFTER UPDATE ON ` ORDER `
FOR EACH ROW BEGIN
IF OLD.payment_amount>0 THEN
IF OLD.state<>0 AND NEW.state =0 THEN
INSERT INTO b VALUES(1);
END IF;
END IF;
END;$$
DELIMITER ;
wwwwb 2013-05-29
  • 打赏
  • 举报
回复
DELIMITER $$
DROP TRIGGER IF EXISTS order_state_change$$
CREATE TRIGGER order_state_change AFTER UPDATE ON ` ORDER `
FOR EACH ROW BEGIN
IF OLD.payment_amount>0 THEN
IF OLD.state<>0 AND NEW.state =0 THEN
INSERT INTO b VALUES(1);
END IF;
END IF;
END;$$
DELIMITER ;
wwwwb 2013-05-29
  • 打赏
  • 举报
回复
DELIMITER $$
DROP TRIGGER IF EXISTS order_state_change$$
CREATE TRIGGER order_state_change AFTER UPDATE ON aa1
FOR EACH ROW BEGIN
IF OLD.payment_amount>0 THEN
IF OLD.state<>0 AND NEW.state =0 THEN
INSERT INTO b VALUES(1);
END IF;
END IF;
END;$$
DELIMITER ;
wise019 2013-05-29
  • 打赏
  • 举报
回复
引用 1 楼 wwwwb 的回复:
CREATE TRIGGER order_state_change AFTER UPDATE ON ORDER FOR EACH ROW BEGIN IF( OLD.payment_amount >0 ) THEN IF( OLD.state<> and NEW.state =0 ) THEN UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id; end if; end if;
依然报错
错误
SQL 查询:

CREATE TRIGGER `sq_actual`.`order_state_change` AFTER UPDATE ON  `sq_actual`.`order` FOR EACH ROW BEGIN IF( OLD.payment_amount >0 ) THEN IF( OLD.state <>0 && NEW.state =0 ) THEN UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id;


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 5 
wwwwb 2013-05-29
  • 打赏
  • 举报
回复
CREATE TRIGGER order_state_change AFTER UPDATE ON ORDER FOR EACH ROW BEGIN IF( OLD.payment_amount >0 ) THEN IF( OLD.state<> and NEW.state =0 ) THEN UPDATE member SET shopping_points = shopping_points + OLD.payment_amount WHERE id = OLD.member_id; end if; end if;

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧