我试图插入数据到表中。如果列没有数据,我想插入行 – 不管其他列。
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触发器内部发生的,这只是一个简单的测试用例。
更换
原文链接:https://www.f2er.com/sqlite/198115.htmlCREATE 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|