更改外键表名称未正确更新数据

时间:2013-05-01 00:15:03

标签: mysql sql database

我有以下表格:

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”。为什么这种行为会这样?

1 个答案:

答案 0 :(得分:1)

你知道你使用的是什么引擎吗?我读到MySQL使用默认引擎将解析外键约束,但实际上并没有对它们做任何事情。您是否有可能使用MyISAM引擎?

http://dev.mysql.com/doc/refman/5.5/en/ansi-diff-foreign-keys.html