2014-11-09 71 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確實提供了外鍵約束,默認情況下它是禁用的。

相關問題