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
);
當我在出版商改變「名」,它不是在titles表改變「發行人」 。爲什麼這種行爲是這樣工作的?
我的主機確實實現了MyISAM引擎。有沒有辦法改變引擎而不會搞亂我的數據? – JimRomeFan 2013-05-01 00:32:14
這個鏈接實際上有一些很好的例子,按引擎劃分,看起來你可以完成你想要做的事情,只是略微不同於你如何做它:http://dev.mysql.com/tech-resources/ articles/mysql-enforcing-foreign-keys.html - 觸發器。 – mikey 2013-05-01 00:34:32
至於從一個引擎更改爲另一個引擎,我不知道它是什麼,因爲我從來沒有做過,你可以搜索它我可以找到這個鏈接:http://dev.mysql.com/doc/ refman/5.6/en /轉換表到innodb.html – mikey 2013-05-01 00:39:57