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

标签 mysql foreign-keys

我只是有一个关于 MySQL Workbench 和脚本的简单问题(我相信)。我要创建的数据库非常小;但是,我在定义外键时遇到问题。我收到错误 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);

最佳答案

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

关于mysql - 无法将外键约束添加到多列 pk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40229434/

相关文章:

mysql - 合并计数结果加入laravel

php - 如何在 MySQL 搜索结果中突出显示关键字

mysql - 使用 ARC 从 Objective-C 项目访问 MySQL 服务器

带有多字段主键的MySql问题

mysql - MySQL FK 的正确命名约定是什么?

MySQL 重复的键名

mysql - 高级 SQL 选择查询(唯一行)(分组依据)

mysql - SQL : Help writing select query using JOIN

SQL Server外键约束的好处

mysql - 关系数据库设计外键