1

这是一个非常具体的问题。我一直在试图弄清楚所需的确切步骤,但我想不出任何可行的方法。

每当将“任务”表中的新任务插入数据库时​​,我需要一个将新记录插入到名为 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查询作为 source

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 回答