读书人

数据库外键的疑问?解决方法

发布时间: 2011-12-30 23:30:45 作者: rapoo

数据库外键的疑问?
我建立了两张表!
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

祝楼主成功。

读书人网 >Java Web开发

热点推荐