2014-11-09 63 views
2

我要表:外键列允许插入值,是不是在引用的列

CREATE TABLE `artist` (
    `name` TEXT NOT NULL, 
    `gender` TEXT NOT NULL, 
    `city` TEXT NOT NULL, 
    PRIMARY KEY(name) 
); 

“艺术家”中的“艺术品”表列允许我插入数据这不在引用列中。

外键约束还防止从被 插入到外键列无效的数据,因为它必须是包含在它指向表中的 值之一。 (c)W3school

我做错了吗?

+0

名称的类型是'TEXT',它是一个主键,只有在指定长度的情况下,才可以将此列作为键。 你的create table语句会给出错误。 – radar 2014-11-09 02:38:57

+0

它不会给出错误。表格创建得很好,我可以看到它们。 – fermerius 2014-11-09 02:45:25

+0

哪个版本的mysql?这些命令是从其他应用程序运行的。在这种情况下可能会使用一些默认长度。 – radar 2014-11-09 02:55:21

回答

5

你使用SQLite?
如果是这样,您需要先运行

PRAGMA foreign_keys = ON;
,而SQLite确实提供了外键约束,默认情况下它是禁用的。

相关问题