sqlite – 如何让INSERT或IGNORE工作

前端之家收集整理的这篇文章主要介绍了sqlite – 如何让INSERT或IGNORE工作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图插入数据到表中。如果列没有数据,我想插入行 – 不管其他列。
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|
原文链接:https://www.f2er.com/sqlite/198115.html

猜你在找的Sqlite相关文章