为什么重建同名的外键表会失败
本帖最后由 hmchzb19 于 2016-05-24 14:08 编辑1. 我先是建了两个表。CREATE TABLE employee(
employee_id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
last_name VARCHAR(30) NOT NULL,
first_name VARCHAR(30) NOT NULL,
email VARCHAR(100) NOT NULL,
hire_date DATE NOT NULL,
notes MEDIUMTEXT,
PRIMARY KEY(employee_id),
INDEX(last_name),
UNIQUE(email)
)ENGINE=InnoDB;
CREATE TABLE address(
employee_id int(10) UNSIGNED NOT NULL,
address VARCHAR(50) NOT NULL,
city VARCHAR(30) NOT NULL,
state CHAR(2) NOT NULL,
postcode CHAR(5) NOT NULL,
FOREIGN KEY(employee_id)
REFERENCES employee(employee_id) )
ENGINE=InnoDB;然后我drop 了表address, 打算重建这个表。SET FOREIGN_KEY_CHECKS = 0;
drop table address;
重建表就一直报错。mysql> CREATE TABLE address(
-> employee_id int(10) UNSIGNED NOT NULL,
-> address VARCHAR(50) NOT NULL,
-> city VARCHAR(30) NOT NULL,
-> state CHAR(2) NOT NULL,
-> postcode CHAR(5) NOT NULL,
-> FOREIGN KEY(employee_id)
-> REFERENCES employee(employee_id) on update cascade ON DELETE CASCADE)
-> ENGINE=InnoDB;
ERROR 1005 (HY000): Can't create table 'sakila.address' (errno: 150)
为什么?
因为我没有删除干净什么东西吗?
运行了,没报错。 是的,我后来发现问题了,我本来有一个表也叫address,被我drop table if exist误删了。
然后我建这个表就一直报错。
页:
[1]