innodb存储引擎表,mysql版本5.1.41-log,linux系统:mysql>
mysql> alter table child add constraint fk_pid foreign key child(pid) references parent(id) on update cascade;
ERROR 1005 (HY000): Can't create table 'test.#sql-ddf_7' (errno: 150)
mysql>
mysql>
mysql> alter table child add constraint fk_pid foreign key child(pid) references parent(id) on update cascade;
ERROR 1005 (HY000): Can't create table 'test.#sql-ddf_7' (errno: 150)
mysql>
mysql>
* 使用在外键关系的域必须为索引型(Index)。
* 使用在外键关系的域必须与数据类型相似。建表SQL是什么
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`pid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `parent` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`id` INT(11) DEFAULT NULL,
`name` VARCHAR(20) DEFAULT NULL,
`pid` INT(11) KEY
) ENGINE=INNODB DEFAULT CHARSET=utf8;CREATE TABLE `parent` (
`id` INT(11) PRIMARY KEY ,
`name` VARCHAR(20) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8;
ALTER TABLE child ADD CONSTRAINT fk_pid FOREIGN KEY child(pid) REFERENCES parent(id) ON UPDATE CASCADE;