主表 A表
create table A(
a_id int  auto_increment,
primary key (`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;子表 B表
create table B(
a_id int auto_increment,
b_id int not null,
primary key (`a_id`),
foreign key (`b_id`) references A(`a_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;已知 每个表有一个主键,只有一个字段可以auto_incrementB 表 b_id字段的值如何跟随主表 a_id 字段自增?应该怎么关联,能同时加入数据,小弟新手求大神指点! 

解决方案 »

  1.   

    外键的含义是 B 表 b_id字段的值要么是null ,要么是来自于A表a_id。向B表中b_id字段写入其他值是不允许的。
      

  2.   

    B表的b_id值,可不可以跟随主键表a_id一样自动添加有序列的值,并且不重复, 还不用PHP来写查询,处理事务。
    还有一点,B表不能出错,出错了 自增的顺序会跳(失败也会+1),怎么搞一个表既有主键又有外键?大神在哪里
      

  3.   

    第一个表:A表   字段aid  是主键自增长;
    第二个表:B表   字段aid、 bid  , aid是主键自增,bid字段是A表的外键;问题一:B表的bid字段值 如何跟随 A表的主键字段值 一致自增长? (bid字段没有auto_increment约束)
    问题二:B表如果insert插入失败aid主键列的值也会auto_increment ,该如何解决这个问题?大神们 难道没有这样的情况吗?还是我没说明白,关系型数据库  不就是要这样关联吗?