2011-11-10 13 views
0

sqlite3を使用してSQLiteデータベースにテーブルを作成しようとしています。sqlite3ファイルからSQLを実行中にエラーが発生しました

$ sqlite3 mydb < mytables.sqlコマンドは、Incomplete SQL: ??Cというエラーを生成します。

mytables.sqlは次のようになります。これは、いくつかのテーブルは、Androidデバイスに複製する必要があるSQL Serverの、によって生成されたスクリプトから変更された

CREATE TABLE SizeCulture (
    SizeCultureID INTEGER PRIMARY KEY ASC, 
    SizeID INTEGER NULL, 
    CultureID TEXT NULL, 
    Name TEXT NULL, 
    Description TEXT NULL, 
    Abbreviation TEXT NULL, 
); 

CREATE TABLE Size(
    SizeID INTEGER PRIMARY KEY ASC , 
    Creation TEXT NOT NULL, 
    Modification TEXT NOT NULL, 
    Deleted INTEGER NOT NULL, 
); 
/****** Object: Table [Ordering].[BarCode] Script Date: 11/09/2011 14:58:19 ******/ 
CREATE TABLE BarCode(
    BarCodeID INTEGER PRIMARY KEY ASC NOT NULL, 
    BarCodeValue TEXT NOT NULL, 
); 

上記は単なるcreate table文の繰り返しです。私が理解しているところから、SQLiteは標準のSQL(MySQLやpostgresのような)に従います。

答えて

2

私は現時点でそれをテストすることはできませんが、それはそれを混乱させる末尾のコンマであると思います(たとえば、末尾のカンマはAbbreviation TEXT NULL,です)。末尾のカンマをすべて削除してください。

編集:を明確にするために、私はこれらのコンマのすべてについて話している:

Abbreviation TEXT NULL, 
... 
Deleted INTEGER NOT NULL, 
... 
BarCodeValue TEXT NOT NULL, 
+0

それを試してみてください。私はまだ同じエラーが発生しています。別のテーブルを最後の行(または場合によっては2行)として参照するテーブルがいくつかあります。 –

+1

@Mike:末尾のカンマを取り除いても問題ありません。あなたが私たちに見せている以上にSQLファイルにはありますか? –

+1

@muistooshort表示されていないのは、簡潔にするために、130行の作成ステートメントだけです。作成ステートメントは、その中にあります。私は後続のカンマ、コメント、および外部キーステートメントを削除しました。私はそれぞれの作成ステートメントをチェックするプロセスに入っています。 –

0

私は同じ問題を抱えていたが、Googleは私を導いているためさまざまな理由で(私はコメントしていますここに)。あなたのファイルに奇妙なエンコーディングがある場合(UTF-8ではなくUCS-2のような)、このエラーが発生することがあります。

関連する問題