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