2

R では、複数のステートメントを含むクエリを sqlQuery に渡すたびにエラーが発生します。例えば、

sqlQuery(ch, 'DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2;')

エラーが発生します

[1] "42000 1064 [MySQL][ODBC 5.1 Driver][mysqld-5.5.27]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DROP TABLE IF EXISTS t2' at line 1"
[2] "[RODBC] ERROR: Could not SQLExecDirect 'DROP TABLE IF EXISTS t1; DROP TABLE IF EXISTS t2;'"

私は何を間違っていますか?

4

1 に答える 1

0

Drop table if exists t1まず、 Rから1つのステートメントを試してください。私の場合(Accessデータベースでテストしています)、これは失敗し、ODBCがif exists私の環境でサポートされていないことを示しています。MySQLWorkbenchでのテストは公正な比較ではありません。ただし、構成はRMySQLパッケージによって提供される関数で機能する場合があります。

ODBCは多くの点で異なるため、動作するかどうかをテストするには、通常、Accessを使用してODBC経由でデータベースに接続し、SQLデザイナを使用します。以下はそこでは機能しません:

CREATE TABLE b (id INT PRIMARY KEY);
DROP TABLE b;

別のステートメントとして、それは問題なく機能します。

于 2013-03-10T10:12:21.067 に答える