首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

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

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

祝楼主成功。

热点排行