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