我在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.
有人可以说这是为什么吗?
答案 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)
你不应该指定"外键"完全是这样的。我想后者是有效的,因为它不是关键字,而是将其读作列的名称。
此外,您应该在列名后面提供数据类型。