无法将外键约束添加到多列pk

时间:2016-10-25 00:08:01

标签: mysql foreign-keys

我只有一个关于MySQL工作台和脚本的简单问题(我相信)。我正在尝试创建的数据库非常小;但是,在定义外键时遇到问题。我收到错误1215:无法为“Cuenta”表添加外键约束,我不知道为什么。

该数据库名为cajero,它有两个表:Cliente和Cuenta。

这是脚本

USE cajero;
CREATE TABLE Cliente(
    usuario VARCHAR(20) NOT NULL,
    passw VARCHAR(15) NOT NULL,
    cuenta INT(10) NOT NULL,
    nombre VARCHAR(40) NOT NULL,
    primary key(usuario)
)Engine=InnoDB;

alter table Cliente
    drop primary key,
    Add primary key(usuario, cuenta);

Use cajero;
CREATE TABLE Cuenta(
    idcuenta INT(10) NOT NULL,
    saldo float(15,2) NOT NULL,
    primary key(idcuenta)
)Engine=InnoDB;

Use cajero;
Alter table cuenta
    add foreign key(idcuenta) references Cliente(cuenta);

1 个答案:

答案 0 :(得分:0)

Cuenta表中的FK仅引用Cliente表中多列PK的一列。您必须在Cliente中创建另一个仅提及cuenta列的索引,或者您必须更改FK以便它引用PK中的所有列。