日期:2014-05-18  浏览次数:20716 次

数据库外键的疑问?
我建立了两张表!
create table a
(
id int primary key auto_increment,
name varchar(255), 
);

create table b
(
id int primary key auto_increment,
name varchar(255),
bid int references a(id)
);

在a中我插入了两条数据,这样a中id的值就变成了1,2;
接着我再b中插入了这条数据insert into product(name,bid) values('b',3);

按照外键的定义我是不能插入这条数据的,但奇怪的是我竟然可以插入!!这是什么原因啊??很奇怪??

------解决方案--------------------
加上 TYPE = InnoDB 创表选项
目前只有 InnoDB 表支持外键约束 ,Mysql 的其他类型暂不支持外键。

create table a 

id int primary key auto_increment, 
name varchar(255)
)type = InnoDB

create table b 

id int primary key auto_increment, 
name varchar(255), 
bid int ,

foreign key(bid) references a(id)
)type = InnoDB

转自 : http://topic.csdn.net/t/20031211/13/2552618.html

祝楼主成功。