1

我有以下表格:

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
);

当我更改发布者中的“名称”时,它不会更改标题表中的“发布者”。为什么这种行为会这样运作?

4

1 回答 1

1

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

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

于 2013-05-01T00:30:22.867 回答