Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在上更新后出现MySQL错误_Mysql - Fatal编程技术网

在上更新后出现MySQL错误

在上更新后出现MySQL错误,mysql,Mysql,在这里,我试图在更新了review_表后插入到付款_表中,但只有在review_表中的状态更新为2后才插入。但是在运行此触发器后出现错误,即 1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,了解 触发器是: CREATE TRIGGER payment_details_trig AFTER UPDATE ON review_table FOR EACH ROW BEGIN IF NEW.status=2 INSERT INTO payment_table(paper_

在这里,我试图在更新了review_表后插入到付款_表中,但只有在review_表中的状态更新为2后才插入。但是在运行此触发器后出现错误,即

1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,了解

触发器是:

CREATE TRIGGER payment_details_trig AFTER UPDATE ON review_table
FOR EACH ROW
BEGIN
 IF NEW.status=2
  INSERT INTO payment_table(paper_id, payment_mode, payment_refNo, payment_image,status)
  VALUES (0,0,0,0,0);
 END IF;
END;

除了丢失的
然后
之外,没有任何东西突出。您可能需要分隔符语句:

DELIMITER $$
CREATE TRIGGER payment_details_trig AFTER UPDATE ON review_table
    FOR EACH ROW
    BEGIN
        IF NEW.status = 2 THEN
            INSERT INTO payment_table(paper_id, payment_mode, payment_refNo, payment_image,status)
                VALUES (0, 0, 0, 0, 0);
        END IF;
    END;
$$
DELIMITER ;

SQL
中的
1064
问题有以下四种情况:

1) 保留字的使用

每个版本的
MySQL
都有自己的
保留字列表。这些词用于特定目的或在
MySQL
引擎中执行特定功能。如果您试图使用这些
保留字中的一个
,您将收到1064错误。要解决此问题,您需要在该字周围加上反勾“`”

2) 缺少数据: 有时数据库中的数据丢失。当查询需要此数据时,这可能会导致问题

3) 输入错误或缺少命令: 1064错误的一个最常见原因是
SQL
语句使用键入错误或缺少命令

4) 不推荐使用的命令: 有些已弃用的命令(计划删除但仍允许一段时间)最终会过时。这意味着该命令在
SQL
语句中不再有效

在您的情况下,第三个选项是答案,即错误的原因。您没有在
之后写入
如果