SQLSTATE [HY000]: общая ошибка: 1 рядом с "действием": синтаксическая ошибка

Я пытаюсь создать БД в SQLite. Файл создается, как я хочу, но я получил исключение из заголовка выше (напоминание: SQLSTATE[HY000]: General error: 1 near "action": syntax error). Я понятия не имею, почему я это получил.

$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
источник поделиться
1 ответ

Ограничения таблицы, такие как FOREIGN KEY(fk_unit) REFERENCES unit(unit_id) должны соответствовать спецификациям столбцов. Теперь у вас есть ограничение таблицы в середине ваших спецификаций столбцов. Переместите его в конец CREATE TABLE.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос