mysql添加外键保存失败,在MySQL5中添加复合外键失败

我试图强制用户的地址信息中的州/省和国家名称来自我列出国家和州/省的一组表格.为了做到这一点,我尝试运行这样的alter table命令……

ALTER TABLE User

ADD FOREIGN KEY (stateProvince,country)

REFERENCES `StateProvince`(`name`,`countryName`);

然后我收到这条消息……

Create table ‘realtorprint_dev/#sql-d5c_3d’ with foreign key

constraint failed. There is no index in the referenced table where the

referenced columns appear as the first columns.

有没有人知道如何处理此错误消息?

这是州和国家表的创建……

CREATE TABLE Country (

name varchar(40) NOT NULL,

abbreviation varchar(4) NOT NULL,

PRIMARY KEY (name)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE StateProvince (

countryName varchar(40) NOT NULL,

name varchar(100) NOT NULL,

abbreviation varchar(3) NOT NULL,

PRIMARY KEY (countryName,name)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

alter table StateProvince

add constraint FK_StateProvince_Country

foreign key (countryName)

references Country (name);

现在对于用户表…

create table realtorprint_dev.user (

id bigint not null,

created datetime,

email varchar(255) not null,

fax varchar(255),

mobile varchar(255),

name varchar(255),

password varchar(255),

phone varchar(255),

title varchar(255),

tollFree varchar(255),

updated datetime,

web varchar(255),

brokerage_id bigint,

address varchar(255),

city varchar(255),

country varchar(255),

stateProvince varchar(255),

type varchar(255),

zipPostal varchar(255),

activated bit not null,

locked bit not null,

primary key (id),

foreign key FK285FEB6722226 (brokerage_id) references brokerage(id)

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值