解决方案 »

  1.   

    贴出 show create table a;  show create table b 以供分析。
      

  2.   

    把 创建 FK  的语句发上来,个人怀疑如下:
    1.FK 你给弄反了,你的本意是 B 引用A,结果设计成 A 引用 B了
    2.你在表B上有TR(也可能不是TR),要在表A写数据,但是由于有其他的什么原因,数据写入失败,自增列就跳号了;
      

  3.   

    | user  | CREATE TABLE `user` (
      `user_email` varchar(50) NOT NULL,
      `user_name` varchar(20) NOT NULL,
      `user_pass` varchar(30) NOT NULL,
      `toefl` int(3) DEFAULT NULL,
      `gre` int(3) DEFAULT NULL,
      `greWrite` float(2,1) DEFAULT NULL,
      `GPA` float(5,2) DEFAULT NULL,
      PRIMARY KEY (`user_email`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk |
    | activities | CREATE TABLE `activities` (
      `id` int(4) NOT NULL AUTO_INCREMENT,
      `record` varchar(80) DEFAULT NULL,
      `user_email` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `user_email` (`user_email`)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=gbk |
    我用show create tables显示出来的,我已经把自增ID去掉了,可是我往activities表里添加记录,user没有他相应的email仍然不受影响
      

  4.   

    楼主需要注意这个 ENGINE=MyISAMmyisam 是不支持外键的。
      

  5.   

    额,我没加这个啊?他自己出来的。。还是说mysql不支持外键?
      

  6.   

    斑竹回答的很清楚了啦,myisam引擎不支持外键