我试图在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 ); ");
编辑:TEXT / VARCHAR数据类型似乎有问题。知道为什么吗?
答案 0 :(得分:1)
FOREIGN KEY(fk_unit) REFERENCES unit(unit_id)
等表约束应遵循列规范。您现在在列规范的中间有表约束。将其移至CREATE TABLE
。