我創建其中cat_parent_id
是一個外鍵的主鍵cat_id
限制的表,使用此約束:MySQL的 - 外鍵在同一個表的主鍵,錯誤#1452
CREATE TABLE categories (
cat_id SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
cat_parent_ID SMALLINT,
cat_name VARCHAR(40)
INDEX cat_id(cat_id),
FOREIGN KEY(cat_id) REFERENCES categories(cat_id),
);
當我嘗試插入一條記錄,其中cat_parent_ID
是NULL
,我得到的錯誤:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`myDatabase`.`categories`, CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`cat_id`) REFERENCES `categories` (`cat_id`))
如何能在沒有外鍵開始與外鍵約束失敗?只有在不允許null的情況下,約束纔有可能?
我只能成功插入記錄,如果我禁用約束,這不是我想要的。我需要parent_id
是可選的,如果它有一個值,那麼它是現有的cat_id
只有
你是不是要把FK放在'cat_parent_id'上? –
@AaronKent這就是我的意思是... thx指出修復 – bsapaka
太棒了。你介意把我的答案標爲正確嗎? –