我先创建了一个表 
create table card (card_id varchar(10)not null,
card_num varchar(10) not null,
primary key(card_id));
创建成功,然后又创建另一个表
create table user( user_id, varchar(10)not null,
user_name varchar(20) not null,
card_num varchar(10) not null,
primary key(user_id),
foreign key(card_num) references card(card_num));
错误提示:can't create table '.\test\user.frm'
为什么第二个表就创建不了,请问这是什么原因?

解决方案 »

  1.   

    试下:把表名换个,比如newUser,这个user有冲突的貌似。。
      

  2.   

    以下是我的输入和结果提示:
    mysql>  create table card (card_id varchar(10)not null,
        -> card_num varchar(10) not null,
        -> primary key(card_id));
    Query OK, 0 rows affected (0.11 sec)mysql> create table newUser(
        -> user_id varchar(10) not null,
        -> user_name varchar(20) not null,
        -> card_num varchar(10) not null,
        -> primary key(user_id),
        -> foreign key(card_num) references card(card_num));
    ERROR 1005 (HY000): Can't create table '.\xbdbookshop\newuser.frm' (errno: 150)
      

  3.   

    知道了,references两边相关联的两个字段中必须有主键约束或唯一约束
      

  4.   

    是,一般是PRIMAY KEY,OR UNIQUE