【问题标题】:counting rows of sqlite INSERT SELECT计算 sqlite INSERT SELECT 的行数
【发布时间】:2012-01-11 19:06:53
【问题描述】:

我有两个 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 和一个SELECTb

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

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

【问题讨论】:

    标签: sqlite select insert rowcount


    【解决方案1】:

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

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

    所以 changes() 如果插入一行则返回 1,否则返回 0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-15
      • 2021-05-02
      相关资源
      最近更新 更多