私はこの問題を解決しようとしてきました。トリガーmysql未知のテーブル
CREATE TRIGGER some_trigger AFTER UPDATE ON table_a
FOR EACH ROW BEGIN
DECLARE tname VARCHAR(20);
IF (table_a.field_offer=1) THEN
SET tname='table_b';
ELSEIF (table_a.field_offer=0) THEN
SET tname='table_c';
END IF;
IF ((new.field_state = 0)) THEN
UPDATE tname join table_a on tname.ID=table_a.ref_field
SET tname.STOCK = tname.STOCK -1;
ELSEIF ((new.field_state = 1)) THEN
UPDATE tname join table_a on tname.ID=table_a.ref_field
SET tname.STOCK = tname.STOCK +1;
END IF;
END;
私は取得しています:
不明なテーブル 'table_a' フィールドリストのここでは、コードです。 Field_offerとfield_stateは になります。
NEWとOLDのトリガー関数内のテーブルで現在の値にアクセスする必要があります。 –
上記のコメントに加えて、(tnameなどの)変数をクエリのテーブル名として使用することもできません。 – Uueerdo