1
を取得MySQLでのトリガーあなたのSQL構文でエラーが発生しているは、私が3でトリガを書い1.</p> <p>=私はいくつかの値を更新するトリガーを作成しようとしている、との行が値を持つ新しい行を挿入よりも、存在していない場合、エラー
CREATE TRIGGER stat_trg BEFORE INSERT ON comments
FOR EACH ROW
BEGIN
INSERT INTO statistics
SET item_id = NEW.item_id,
likes = 0,
comment = 1
ON DUPLICATE KEY UPDATE
SET comment = OLD.comment + 1;
END;
;:可能な方法とそれらのすべてが
バージョン1エラー
を取得していますライン9
バージョン2に近い を使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアルを確認し 'SETコメント= OLD.comment + 1':
CREATE TRIGGER stat_trg AFTER INSERT ON comments
FOR EACH ROW
BEGIN
DECLARE num integer DEFAULT 0;
SELECT comment into num FROM statistics
WHERE item_id = OLD.item_id;
SET num := num + 1;
INSERT INTO statistics (item_id, comment, likes) VALUES (num,1,0)
END;
ますあなたのSQL構文に誤りがあります。 が近く を使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認してください「」行で4
バージョン3:
CREATE TRIGGER stat_trg BEFORE INSERT ON comments
FOR EACH ROW
BEGIN
INSERT INTO statistics (item_id, likes, COMMENT) VALUES (NEW.item_id,0,1)
ON DUPLICATE KEY UPDATE
comment = comment + 1;
END;
1064 - あなたはあなたの中にエラーが発生していますSQL構文。対応するマニュアルを調べてMySQLサーバのバージョンを確認してください。右側の構文は行末にあります。
私が見つけた例によれば、すべてがうまく見えますが、何が欠けていますか? この問題についてお手伝いください。おかげさまで
は(https://dev.mysql.com/doc/refman/5.7/en/insert-on- [DUPLICATE KEY UPDATE構文INSERT ... ON]をご確認くださいduplicate.html)。任意のプロシージャ・コードをSQL文の中に注入しようとしています。 –
も同様にエラーが発生しました。 – Marat
あなたは '統計'のテーブルデザインを共有できますか? – Ravi