我有以下表格:
CREATE TABLE publishers
(
name VARCHAR(50) NOT NULL,
status TINYINT DEFAULT 1 NOT NULL,
CONSTRAINT publishers_pk PRIMARY KEY (name)
);
CREATE TABLE titles
(
id INT NOT NULL AUTO_INCREMENT,
publisher VARCHAR(50),
title VARCHAR(50) NOT NULL,
status ENUM('active', 'announced', 'inactive'),
discount TINYINT NOT NULL,
CONSTRAINT title_pk PRIMARY KEY (id),
CONSTRAINT title_fk FOREIGN KEY (publisher)
REFERENCES publishers (name)
ON DELETE SET NULL
ON UPDATE CASCADE
);
当我在发布商中更改“名称”时,它不会更改titles表中的“publisher”。为什么这种行为会这样?
答案 0 :(得分:1)
你知道你使用的是什么引擎吗?我读到MySQL使用默认引擎将解析外键约束,但实际上并没有对它们做任何事情。您是否有可能使用MyISAM引擎?
http://dev.mysql.com/doc/refman/5.5/en/ansi-diff-foreign-keys.html