1

これはかなり具体的な質問です。私は必要な手順を正確に理解しようとしてきましたが、うまくいくものを思い付くことができません。

'Task'テーブルの新しいタスクがデータベースに挿入されるたびに、Recordsというテーブルに新しいレコードを挿入するトリガーが必要です。タスクの条件に一致する「アイテム」テーブルの開いているアイテムごとにレコードを挿入する必要があります。ステートメントでの私の擬似コード/試行は次のとおりです。

CREATE TRIGGER update_item_records ON INSERT INTO tasks
BEGIN
   SELECT item in ITEMS WHERE item.type=new.type AND item.program=new.program
   ....now insert into records - this is where I'm confused
   INSERT  INTO records record.item = item.id, record.program = new.program, 
   record.task=new.id
END
4

2 に答える 2

2

SELECTトリガー内のステートメントの結果は無視されます。ただし、INSERTコマンドはソースとしてクエリを受け入れSELECTます。

INSERT INTO records(item, program, task)
SELECT id, new.program, new.id
FROM items
WHERE type = new.type
  AND program = new.program;
于 2013-03-26T17:36:40.370 に答える
0

ここにコードとコンセプト

トリガーはprocedural code、で特定のイベントが発生したときに実行されるものdatabaseです。

trigger大学に新入生を挿入した後、食堂と図書館にフィールドを自動的に追加するこの簡単なデモを考えてみてください。

CREATE TRIGGER if not exists add_student   
   AFTER INSERT  
 ON[student]  
   for each row  
     BEGIN  
        insert into library values (2 , new.sid );  
        insert into canteen values (3 , new.sid);  
     END;
于 2015-02-24T06:30:22.693 に答える