2013-10-26 3 views
0

при попытке ввода нескольких значений вставки в sqlit3. Он показывает 21 код ошибки.множественная вставка с использованием SQL-запроса

пример запроса:

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):

строка постоянной формируется путем заключения строки в одном д uotes ('). Одинарная кавычка внутри строки может быть закодирована путем размещения двух одиночных кавычек в строке - как в Паскале.

Это оставляет одинарную кавычку (не в одинарных кавычках) в качестве заполнителя будет обрабатываться SQLite, вместо ожидаемой строки постоянной ... и при этом ... коде ошибки 21 (SQLITE_MISUSE) является генерируется при попытке привязки.

Возможно, вы указали символ пробела '' или NULL?

EDIT: Несмотря на это ответ будучи ~ явно неправильно ~, информация в этом ответе есть SQLite «Гоча», что, вероятно, не получает много упоминания, так что я надеюсь, что это помогает любому, кто сажает здесь через родственные поисковые термины.

+0

Вы пропускаете «* внутри строки *»; пара одиночных кавычек '' ''одна - это просто пустая строка. –

+0

Ты абсолютно прав. Я заметил, что шестое значение OP должно быть одинаковым для каждой вставки и «предполагаемым» без фактического выполнения кода. Спасибо и рад, что вы указали на его проблему. – PositiveLogic

1

Ваш оператор INSERT верен, но только в SQLite 3.7.11 или новее.

Если у вас (возможно) была более ранняя версия, вы должны просто использовать несколько инструкций INSERT.

Смежные вопросы