我有两个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
并检查它们存在的天气,似乎效率很低。
答案 0 :(得分:2)
我希望changes()功能可以帮助你。
changes()函数返回的数据库行数 最近完成的INSERT更改,插入或删除, DELETE或UPDATE语句,不包括较低级别的语句 触发。 changes()SQL函数是一个包装器 sqlite3_changes() C / C ++函数因此遵循相同的规则 计算变化。
因此,如果插入了行,则changes()返回1,否则返回0。