2013-10-26 30 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语句。