1

sqlite3 で実装するアイデアが 1 つあります。new.something の名前から列を追加して、トリガーの変更テーブルで行うことは可能ですか?

簡単な例:

CREATE TRIGGER add_something AFTER INSERT ON simple_table 
BEGIN:
    ALTER TABLE second_table add column NEW.simple_name int;
END;

これを試すと、構文エラーが発生します。postgresではEXECUTEを行うだけですが、sqliteは非常に簡単で特定の単純なデータベースであるため、これを行う方法がわかりません...テキストにキャストして「」で連結してみます。

4

2 に答える 2

2

ALTER TABLEトリガー内でステートメントを使用することはできません。

動的 SQL ステートメントを実行するには、必要なことを行う独自の関数を登録する必要があります。

CREATE TRIGGER add_something
AFTER INSERT ON simple_table 
BEGIN
    SELECT my_function(NEW.simple_name);
END;
于 2013-11-09T22:17:11.683 に答える
1

いいえ、できません。SQLite トリガーには、INSERT、UPDATE、DELETE、および SELECT ステートメントのみを含めることができます ( CREATE TRIGGER に関する SQLite ドキュメントを参照してください)。

于 2013-11-09T22:17:03.600 に答える