2014-01-10 3 views
0

Я использую Codeigniter, а моя база данных - VFP, я использую odbc для подключения к db.Вставить несколько ошибок с odbc

Я попытался использовать odbc_exec вместо драйвера odbc для воспламенения кода.

При попытке выполнить запрос, как это:

INSERT INTO myTable (field1, field2) VALUES (1, 'myValue'), (2, 'anotherValue') 

я получил ошибку SQL.

Message: odbc_exec(): SQL error: [Microsoft][ODBC Visual FoxPro Driver]Command contains unrecognized phrase/keyword., SQL state 37000 in SQLExecDirect 

Вставка одна за другой работает. Но мне нужно вставить более 20 000 строк и может занять возраст. Может быть, есть альтернативный синтаксис, или я делаю что-то неправильно?

ответ

5

Альтернативный синтаксис выглядит следующим образом:

INSERT INTO dbf_name [(FieldName1 [, FieldName2, ...])] SELECT SELECTClauses [UNION UnionClause SELECT SELECTClauses ...] 

Если вам нужно вставить данные из другого набора данных, то вы можете использовать этот синтаксис. В противном случае, я не вижу разницы между ручной вставкой с

INSERT INTO myBable (field1, field2) VALUES (1, 'myValue'), (2, 'anotherValue') 

и

INSERT INTO myBable (field1, field2) VALUES (1, 'myValue') 
INSERT INTO myBable (field1, field2) VALUES (2, 'anotherValue') 
+1

@CarlosGoce, Олег правильно на его заключительной части. VFP и dbase вообще не поддерживают список запятой для вставок для нескольких значений. Его последний показ двух отдельных команд вставки - это то, что будет работать. – DRapp

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