我正在创建三个表,并且尝试绑定主键和外键时,我收到错误消息“表中不存在键列'username'”。

有人可以看看我的代码,然后告诉我我在做什么错吗?我曾尝试删除数据库并修改表几次,但仍收到相同的消息。这是我的代码,在此先感谢您的帮助!

 create database testproject
 use testproject
 create table caller_info
 (
   caller_id int(11) unsigned auto_increment primary key not null,
   first_name varchar(35) not null,
   Last_name varchar(35) not null,
   phone_number int(25) not null
 );
create table caller_call_record
(
    call_record_id int(11),
    Call_Description varchar(50),
    franchise_id int(10) not null,
    email varchar(40) not null,
    username varchar(25) primary key not null
);
create table caller_escalation
(
    call_escalation_id int(11) unsigned auto_increment not null,
    Second_Level varchar(5) not null,
    caller_id int(11) not null,
    PRIMARY KEY(call_escalation_id),
    FOREIGN KEY(caller_id)
    REFERENCES caller_info(caller_id),
    FOREIGN KEY(username) REFERENCES caller_call_record(username)
);

最佳答案

如前所述,表caller_escalation需要一个名为username的列来创建外键。

听起来像是添加完之后,您现在从MySQL收到Cannot add foreign key constraint错误。出现这种错误的第一件事就是您为表使用了错误的引擎。您最有可能使用不支持外键引用的MyISAM-为了使用这些引用,您需要将所有表上的引擎更改为InnoDB

关于php - “表中不存在关键列'用户名'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20342931/

10-10 11:12