我的sql语句
:alter table personstory add constraint FK_Reference_user_personstory foreign key (userID)
      references user(userID) on delete restrict on update restrict;
错误提示:
Error Code : 1005
Can't create table '.\dep\#sql-3b8_1.frm' (errno: 121)Execution Time : 00:00:00:000
Transfer Time  : 00:00:00:000
Total Time     : 00:00:00:000

解决方案 »

  1.   

    语句没问题mysql> create table a (userid int primary key);
    Query OK, 0 rows affected (0.01 sec)mysql> create table b (a int ,userid int);
    Query OK, 0 rows affected (0.00 sec)mysql> alter table b add constraint FK_Reference_user_personstory foreign key (userID)
        -> references a(userID) on delete restrict on update restrict;
    Query OK, 0 rows affected (0.04 sec)
    Records: 0  Duplicates: 0  Warnings: 0
      

  2.   

    检查你的user表中的 (userID)  是不是主键? 字段的数据类型是否一致?
      

  3.   

    应该是personstory表中的部分userID在user(userID)中找不到,所以导致建不了
      

  4.   

    如果你的两个表是空的,那么着这个语句没有问题,如果有的在user  表中存在但是在父表中不存在,那么着语句会执行失败,插不进数据是因为在父表中该主键不存在,所以在子表插入会失败!