0
我似乎誤解了該基本語法,爲什麼這個樣品的工作原理:SQLITE基本語法
sqlite3_prepare_v2(db, "insert into test values('boo','boo',0);", strlen(querystring)+1 , &stmt, NULL);
if ((rc = sqlite3_step(stmt)) != SQLITE_DONE)
fprintf(stderr, "Error: sqlite3_step() %d. Error Message %s;\n",rc,sqlite3_errmsg(db));
但當我嘗試此查詢: 「插入測試(strtest)VALUES(‘噓’);」
我收到一個錯誤: 錯誤:sqlite3_step()19.錯誤消息約束失敗;
我錯過了什麼?
table test is:「create table test(blobtest BLOB(4)NOT NULL,strtest VARCHAR NOT NULL,inttest INTEGER NOT NULL);」
感謝, Doori酒吧
非常感謝! (我想你實際上意味着strtest被設置爲'boo',但blobtest和inttest沒有NULL或缺省值,對嗎? – 2010-06-14 15:41:49
@Doori Bar - Nope,'blobtest'是你的模式中聲明的第一列,所以除非你指定明確的列順序,例如:'insert into test(inttest,strtest,blobtest)values(...)' – Matt 2010-06-14 15:43:56
但是我做了什麼? 「insert into test(strtest)values('boo');」 – 2010-06-14 15:50:21