Mysql 错误150:表格无法';无法创建

Mysql 错误150:表格无法';无法创建,mysql,foreign-keys,Mysql,Foreign Keys,我哪里做错了?我收到错误消息,无法创建150借记卡表。外键我知道,只是不知道具体是什么。帮忙 create table customer( cust_id int auto_increment, first_name varchar(25), last_name varchar(25), street varchar(25), city varchar(25), state char(2), zip varchar(10), CONSTRAINT customer_pk primary key(

我哪里做错了?我收到错误消息,无法创建150借记卡表。外键我知道,只是不知道具体是什么。帮忙

create table customer(
cust_id int auto_increment,
first_name varchar(25),
last_name varchar(25),
street varchar(25),
city varchar(25),
state char(2),
zip varchar(10),
CONSTRAINT customer_pk primary key(cust_id)
);

create table card_account(
acct_no char(16),
exp_date date,
card_type ENUM("Debit","Credit") not null,
CONSTRAINT card_account_pk primary key(acct_no,exp_date)
);

create table debit_card(
bank_no char(9) not null,
acct_no char(16),
exp_date date,
CONSTRAINT debit_card_pk primary key(acct_no,exp_date),
CONSTRAINT debit_card_acct_no_fk foreign key(acct_no) references card_account(acct_no) on delete cascade,
CONSTRAINT debit_card_exp_date_fk foreign key(exp_date) references card_account(exp_date) on delete cascade
);

您的
card\u账户
表有一个
复合主键
。不能在
外键
约束中单独使用这些列

但是您可以添加一个引用复合主键的
外键

create table debit_card(
bank_no char(9) not null,
acct_no char(16),
exp_date date,
CONSTRAINT debit_card_pk primary key(acct_no,exp_date),
CONSTRAINT debit_card_acct_no_fk foreign key(acct_no,exp_date) references card_account(acct_no,exp_date) on delete cascade
);