加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

sqlite – 如何让INSERT或IGNORE工作

发布时间:2020-12-12 19:17:33 所属栏目:百科 来源:网络整理
导读:我试图插入数据到表中。如果列没有数据,我想插入行 – 不管其他列。 CREATE TABLE t ( id INTEGER PRIMARY KEY,name VARCHAR,other INT);INSERT OR IGNORE INTO t (name) VALUES ('a');INSERT OR IGNORE INTO t (name) VALUES ('a');INSERT OR IGNORE INTO
我试图插入数据到表中。如果列没有数据,我想插入行 – 不管其他列。
CREATE TABLE t (
    id          INTEGER PRIMARY KEY,name        VARCHAR,other       INT
);
INSERT OR IGNORE INTO t (name) VALUES ('a');
INSERT OR IGNORE INTO t (name) VALUES ('a');
INSERT OR IGNORE INTO t (name) VALUES ('a');

有了上面的代码段,我最终得到3行,而不是我想象的1。如果重要的是实际的sql是在INSTEAD OF INSERT触发器内部发生的,这只是一个简单的测试用例。

更换
CREATE TABLE t (
    id          INTEGER PRIMARY KEY,other       INT
);

CREATE TABLE t (
    id          INTEGER PRIMARY KEY,name        VARCHAR UNIQUE,other       INT
);

然后你会得到

sqlite> CREATE TABLE t (
   ...>     id          INTEGER PRIMARY KEY,...>     name        VARCHAR UNIQUE,...>     other       INT
   ...> );
sqlite> INSERT OR IGNORE INTO t (name) VALUES ('a');
sqlite> INSERT OR IGNORE INTO t (name) VALUES ('a');
sqlite> INSERT OR IGNORE INTO t (name) VALUES ('a');
sqlite> select * from t ;
1|a|

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读