2017-09-11 38 views
0

SQLiteでDBを作成しようとしています。私が望むようにファイルが作成されていますが、上記のタイトルからの例外があります(リマインダ:SQLSTATE[HY000]: General error: 1 near "action": syntax error)。なぜ私はそれを得たのか分かりません。SQLSTATE [HY000]:一般的なエラー:1の "アクション"の近く:構文エラー

 
$Database->exec(

" 



CREATE TABLE unit (

    unit_id INTEGER PRIMARY KEY AUTOINCREMENT, 

    NAME VARCHAR(30) NOT NULL, 

    unitsize VARCHAR(2) NOT NULL, 

    line INTEGER(3) NOT NULL, 

    MMR INTEGER(10) NOT NULL, 

    lastin TIMESTAMP, 

    lifespan INTEGER(4) NOT NULL, 

    consumption INTEGER(3) NOT NULL 

    ); 



    CREATE TABLE workshop (

    workid INTEGER PRIMARY KEY AUTOINCREMENT, 

    unit_id INTEGER NOT NULL, 

    fk_unit INTEGER, 

    FOREIGN KEY(fk_unit) REFERENCES unit(unit_id), 

    action VARCHAR, 

    com TEXT, 

    date TIMESTAMP 

    ); 



    CREATE TABLE movement (

    move_id INTEGER PRIMARY KEY AUTOINCREMENT, 

    unit_id INTEGER NOT NULL, 

    fk_id INTEGER, 

    FOREIGN KEY(fk_id) REFERENCES unit(unit_id), 

    line VARCHAR(10), 

    in_out INTEGER(1), 

    akcja VARCHAR, 

    com VARCHAR, 

    DATE TIMESTAMP 

    ); 



     ");

EDIT:TEXT/VARCHARデータ型に問題があるようです。どんな考え?

+0

VARCHAR(100)を見逃しましたか? – Shan

答えて

1

FOREIGN KEY(fk_unit) REFERENCES unit(unit_id)などの表の制約は、列の仕様に従う必要があります。列のスペックの途中に表の制約があります。 CREATE TABLEの末尾に移動します。

+0

それは働いた。ありがとう! –

関連する問題