2012-11-29 51 views
2

我有一个触发器,我想要插入相同的随机值到两个表中。我该怎么做呢?如何'记住'在sqlite中插入到两个表中的值?

CREATE TRIGGER insertTrigger AFTER INSERT ON TableAB 
BEGIN 
    INSERT INTO TableA(id, num) VALUES(RANDOM(), 1); 
    INSERT INTO TableB(id, num) VALUES(??, 1); 
END;

我没有真正使用随机的,而是我自己的自定义功能的SQLite基本上做同样的事情,但我需要记住值插入到表B。我怎么做?

+1

SQLite不支持的变量,但你可能成立一个临时存放你的randomv值的单个字段/值的一次性临时表,并从该临时表中选择你的两个插入查询。 –

+0

@MarcB你应该这样做的答案... –

回答

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; 
+1

非常有创意的解决方案,我喜欢它:) – chacham15

相关问题