2013-10-26 81 views
0

同時嘗試在sqlit3中插入多個值,它顯示了21個錯誤代碼。多次插入使用sqlite查詢

樣本查詢:

insert into Assembly_master ('ASSEMBLY_MASTER_ID','ASSEMBLY_MASTER_KID','ASSEMBLY_MASTER_CODE','ASSEMBLY_MASTER_NAME','DISTRICT_MASTER_CODE','ASSEMBLY_MASTER_HINDI','DISTRICT_MASTER_KID') values ('1','1','76','HH','194',' ','1'),('2','2','101','ANGARA','1008','','545') 

回答

0

錯誤是由您的第二插件(「」)<第六值造成的 - 連續的單引號(彎了腰這樣)是的SQLite的逃逸單引號的方式(從SQL引用所理解的SQLite - >HERE):

字符串常量被包圍在單個q中的串形成uotes (')。字符串中的單引號可以通過將兩個單引號放在一行中進行編碼 - 就像在Pascal中一樣。

這留下了一個單引號字符(不包括在單引號中)作爲SQLite處理的佔位符,而不是期望的字符串常量......因此...錯誤代碼21(SQLITE_MISUSE)是嘗試綁定時生成。

也許你打算空間字符''或NULL?

編輯: 儘管這個答案是〜明顯不對〜,這個答案中的信息是SQLite的「疑難雜症」這可能不會得到太多的提及,所以我希望它可以幫助人誰通過相關的土地在這裏搜索條件。

+0

您忽略了「*在字符串*中」;一對單引號''''一個只是一個空字符串。 –

+0

你是對的。我看到OP的第六個值意圖是每個插入都相同,並且「假定」沒有實際運行代碼語句。感謝和高興你指出了他的問題。 – PositiveLogic

1

您的INSERT語句是正確的,但僅限於SQLite 3.7.11或更高版本。

如果您(可能)有更早的版本,則應該只使用多個INSERT語句。