计算sqlite INSERT SELECT行

时间:2011-12-02 19:39:19

标签: sqlite select insert rowcount

我有两个sqlite表,其中一个表有另一个表的外键。

CREATE TABLE a (id INTEGER PRIMARY KEY NOT NULL, value TEXT UNIQUE NOT NULL);
CREATE TABLE b (id INTEGER PRIMARY KEY NOT NULL, a INTEGER REFERENCES a (id) NOT NULL, value TEXT NOT NULL);

我正在使用INSERT SELECT进行b

INSERT INTO b (a, value) SELECT ?value, a.id FROM a WHERE a.value == ?a;

我如何知道b中是否插入了一行天气?对刚刚插入的值执行SELECT并检查它们存在的天气,似乎效率很低。

1 个答案:

答案 0 :(得分:2)

我希望changes()功能可以帮助你。

  

changes()函数返回的数据库行数   最近完成的INSERT更改,插入或删除,   DELETE或UPDATE语句,不包括较低级别的语句   触发。 changes()SQL函数是一个包装器   sqlite3_changes() C / C ++函数因此遵循相同的规则   计算变化。

因此,如果插入了行,则changes()返回1,否则返回0。