计算 sqlite INSERT SELECT 的行数
我有两个 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);
我正在使用 SELECT
执行 INSERT
到 b
中。
INSERT INTO b (a, value) SELECT ?value, a.id FROM a WHERE a.value == ?a;
我如何知道 a 行是否插入到 b 中?对刚刚插入的值执行SELECT
并检查它们是否存在,似乎效率相当低。
I have two sqlite tables, where one table has a foreign key of the other.
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);
I am doing an INSERT
with a SELECT
into b
.
INSERT INTO b (a, value) SELECT ?value, a.id FROM a WHERE a.value == ?a;
How do I know weather a row was inserted into b or not? Doing a SELECT
for the just inserted values and checking weather they exist, seems rather inefficient.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我希望 changes() 函数可以帮助您。
因此,如果插入了一行,changes() 返回 1,否则返回 0。
I hope the changes() function can help you.
So changes() returns 1 if a row was inserted and 0 otherwise.