私は正常に動作しているトリガーがあります。トリガー(AFTER/BEFORE)Mysqlで
CREATE TRIGGER crm_listings__au
AFTER UPDATE
ON crm_listings FOR EACH ROW
INSERT INTO crm_listings_versions
SELECT
'update', NULL, NOW(), NULL, d.*
FROM
crm_listings AS d
WHERE
d.id = NEW.id;
ここでフィールドの列名も追跡したいと思います。私はこれを踏襲し
:
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
はUPDATE:私は、私はこのコードを実行すると、私は上記のクエリで私はトリガ
CREATE TRIGGER crm_listings__au
BEFORE UPDATE
ON crm_listings
FOR EACH ROW
BEGIN
IF OLD.type != NEW.type
THEN
INSERT INTO crm_listings_versions
SELECT
'update', NULL, NOW(), 'type', d.*
FROM
crm_listings AS d
WHERE
d.id = NEW.id;
END IF;
IF OLD.price != NEW.price
THEN
INSERT INTO crm_listings_versions
SELECT
'update', NULL, NOW(), 'price', d.*
FROM
crm_listings AS d
WHERE
d.id = NEW.id;
END IF;
END;
$$
以下に変更することができなかった、私はこのエラーを取得する考えていますstackoverflow
唯一のことは、あなたが ' 'type''にnull'なので'から4列目を変更したことである - 多分4列目は、 'varchar'の列ではありません? – radoh
'create trigger'コマンドに' DELIMITER $$ 'の前に忘れてしまいました。また、このコマンドの後に 'DELIMITER;'を追加するのを忘れてはいけません。 – krokodilko
@kordirko:少し説明していただけますか? – DOE