2

同じランダムな値を2つのテーブルに挿入したいトリガーがあります。どうすればよいですか?

TableABに挿入した後にトリガーinsertTriggerを作成する
始める
    INSERT INTO TableA(id、num)VALUES(RANDOM()、1);
    INSERT INTO TableB(id、num)VALUES(??、1);
終わり;

私は実際にはランダムを使用していませんが、基本的に同じことを行う独自のカスタムsqlite関数を使用していますが、TableBに挿入するにはその値を覚えておく必要があります。それ、どうやったら出来るの?

4

1 に答える 1

2

SQLiteには変数などはありませんが、最初のテーブルに挿入したばかりのレコードから値を読み取ることができます。

CREATE TRIGGER insertTrigger
AFTER INSERT ON TableAB
BEGIN
    INSERT INTO TableA(id, num) VALUES(RANDOM(), 1);
    INSERT INTO TableB(id, num) SELECT id, 1
                                FROM TableA
                                WHERE rowid = last_insert_rowid();
END;
于 2012-11-30T11:12:14.807 に答える