查看与您的MySQL服务器版本对应的手册,以了解使用near'';在3号线

查看与您的MySQL服务器版本对应的手册,以了解使用near'';在3号线,mysql,triggers,phpmyadmin,delimiter,Mysql,Triggers,Phpmyadmin,Delimiter,这是我的问题 CREATE TRIGGER `trigger1234` BEFORE UPDATE ON `oc_product` FOR EACH ROW BEGIN SET @json = "new:{"; SET @first = true; IF (OLD.product_id!=NEW.product_id) THEN SET @first = false; SET @json = CONCAT(@json, "\"produ

这是我的问题

CREATE TRIGGER `trigger1234` BEFORE UPDATE ON `oc_product` FOR EACH ROW

BEGIN
SET @json = "new:{";
SET @first = true;

IF (OLD.product_id!=NEW.product_id) THEN
    SET @first = false;
    SET @json = CONCAT(@json, "\"product_id\"", ":", "\"", NEW.product_id, "\"");
END IF;

IF (OLD.model!=NEW.model) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"model\"", ":", "\"", NEW.model, "\"");
END IF;

IF (OLD.sku!=NEW.sku) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"sku\"", ":", "\"", NEW.sku, "\"");
END IF;

IF (OLD.upc!=NEW.upc) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"upc\"", ":", "\"", NEW.upc, "\"");
END IF;

IF (OLD.ean!=NEW.ean) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"ean\"", ":", "\"", NEW.ean, "\"");
END IF;

IF (OLD.jan!=NEW.jan) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"jan\"", ":", "\"", NEW.jan, "\"");
END IF;

IF (OLD.isbn!=NEW.isbn) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"isbn\"", ":", "\"", NEW.isbn, "\"");
END IF;


IF (OLD.mpn!=NEW.mpn) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"mpn\"", ":", "\"", NEW.mpn, "\"");
END IF;

IF (OLD.location!=NEW.location) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"location\"", ":", "\"", NEW.location, "\"");
END IF;

IF (OLD.quantity!=NEW.quantity) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"quantity\"", ":", "\"", NEW.quantity, "\"");
END IF;

IF (OLD.stock_status_id!=NEW.stock_status_id) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"stock_status_id\"", ":", "\"", NEW.stock_status_id, "\"");
END IF;

IF (OLD.image!=NEW.image) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"image\"", ":", "\"", NEW.image, "\"");
END IF;

IF (OLD.manufacturer_id!=NEW.manufacturer_id) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"manufacturer_id\"", ":", "\"", NEW.manufacturer_id, "\"");
END IF;

IF (OLD.shipping!=NEW.shipping) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"shipping\"", ":", "\"", NEW.shipping, "\"");
END IF;

IF (OLD.price!=NEW.price) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"price\"", ":", "\"", NEW.price, "\"");
END IF;

IF (OLD.selling_price!=NEW.selling_price) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"selling_price\"", ":", "\"", NEW.selling_price, "\"");
END IF;

IF (OLD.price_per_set!=NEW.price_per_set) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"price_per_set\"", ":", "\"", NEW.price_per_set, "\"");
END IF;

IF (OLD.piece_in_set!=NEW.piece_in_set) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"piece_in_set\"", ":", "\"", NEW.piece_in_set, "\"");
END IF;

IF (OLD.seller_tax!=NEW.seller_tax) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"seller_tax\"", ":", "\"", NEW.seller_tax, "\"");
END IF;

IF (OLD.commission!=NEW.commission) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"commission\"", ":", "\"", NEW.commission, "\"");
END IF;

IF (OLD.points!=NEW.points) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"points\"", ":", "\"", NEW.points, "\"");
END IF;

IF (OLD.tax_class_id!=NEW.tax_class_id) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"tax_class_id\"", ":", "\"", NEW.tax_class_id, "\"");
END IF;

IF (OLD.date_available!=NEW.date_available) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"date_available\"", ":", "\"", NEW.date_available, "\"");
END IF;

IF (OLD.weight!=NEW.weight) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"weight\"", ":", "\"", NEW.weight, "\"");
END IF;

IF (OLD.weight_class_id!=NEW.weight_class_id) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"weight_class_id\"", ":", "\"", NEW.weight_class_id, "\"");
END IF;

IF (OLD.length!=NEW.length) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"length\"", ":", "\"", NEW.length, "\"");
END IF;

IF (OLD.width!=NEW.width) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"width\"", ":", "\"", NEW.width, "\"");
END IF;

IF (OLD.height!=NEW.height) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"height\"", ":", "\"", NEW.height, "\"");
END IF;

IF (OLD.length_class_id!=NEW.length_class_id) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"length_class_id\"", ":", "\"", NEW.length_class_id, "\"");
END IF;

IF (OLD.subtract!=NEW.subtract) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"subtract\"", ":", "\"", NEW.subtract, "\"");
END IF;

IF (OLD.minimum!=NEW.minimum) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"minimum\"", ":", "\"", NEW.minimum, "\"");
END IF;

IF (OLD.sort_order!=NEW.sort_order) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"sort_order\"", ":", "\"", NEW.sort_order, "\"");
END IF;

IF (OLD.status!=NEW.status) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"status\"", ":", "\"", NEW.status, "\"");
END IF;

IF (OLD.viewed!=NEW.viewed) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"viewed\"", ":", "\"", NEW.viewed, "\"");
END IF;

IF (OLD.date_added!=NEW.date_added) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"date_added\"", ":", "\"", NEW.date_added, "\"");
END IF;

IF (OLD.date_modified!=NEW.date_modified) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"date_modified\"", ":", "\"", NEW.date_modified, "\"");
END IF;

IF (OLD.sold_out!=NEW.sold_out) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"sold_out\"", ":", "\"", NEW.sold_out, "\"");
END IF;

IF (OLD.is_single!=NEW.is_single) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"is_single\"", ":", "\"", NEW.is_single, "\"");
END IF;

IF (OLD.singles_product_id!=NEW.singles_product_id) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"singles_product_id\"", ":", "\"", NEW.singles_product_id, "\"");
END IF;

IF (OLD.date_out_of_stock!=NEW.date_out_of_stock) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"date_out_of_stock\"", ":", "\"", NEW.date_out_of_stock, "\"");
END IF;

IF (OLD.expected_dispatch_date!=NEW.expected_dispatch_date) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"expected_dispatch_date\"", ":", "\"", NEW.expected_dispatch_date, "\"");
END IF;

IF (OLD.mrp!=NEW.mrp) THEN
    IF (!@first) THEN
       SET @json = CONCAT(@json, ",");
    END IF;
    SET @first = false;
    SET @json = CONCAT(@json, "\"mrp\"", ":", "\"", NEW.mrp, "\"");
END IF;

SET @json = CONCAT(@json, "}");

INSERT INTO oc_product_modified_log (`product_id`, `modified_field`, `date_added`,`solr_synced`) 
VALUES (NEW.product_id, @json, NOW(),1);

END;
我正在使用触发器,试图将一个表的更改汇总到另一个表中。 我每次都会出错。我不明白为什么每次都会出错。请建议任何可行的解决方案

文件


1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第3行“”附近使用的正确语法。您最好选择不同的分隔符,而不是
delimiter可以是分隔符//
,在结尾处//请参见。我意识到这是一个寻找帮助的奇怪地方,尝试过但仍然会出错我认为在phpmyadmin中执行触发器时,您根本不需要分隔符部分。它会自动添加它,我会删除它,但现在#1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第3行“”附近要使用的正确语法