SQLite3 foreigin或foreign的错误

时间:2016-02-14 00:17:30

标签: sql sqlite

我在sqlite3版本3.9.2中创建了一个db,如果我在表上添加一个新字段,则返回语法错误。例如:

alter table table_01 add column tab_2 integer foreign key references table_02(id);
// this command return syntax error.
alter table table_01 add column tab_2 integer foreigin key references table_02(id);
// and this return success.

有人可以说这是为什么吗?

2 个答案:

答案 0 :(得分:2)

第二个命令使用(而非荒谬的)类型integer foreigin key创建一个列。这是由于SQLite being lax about data types;结果列将具有整数亲和力。

带有外键的correct syntax for adding a new column根本没有FOREIGN KEY

ALTER TABLE table_01 ADD COLUMN tab_2 INTEGER REFERENCES table_02(id);

答案 1 :(得分:0)

你不应该指定"外键"完全是这样的。我想后者是有效的,因为它不是关键字,而是将其读作列的名称。

此外,您应该在列名后面提供数据类型。