因此,我试图向数据库中的一个表添加主键.现在它有这样一个主键:

PRIMARY KEY (user_id, round_number)

其中user_id是外键.

我想把它改成这样:

PRIMARY KEY (user_id, round_number, created_at)

我在phpmyadmin中通过单击表 struct 视图中的主键图标来实现这一点.

这就是我得到的错误:

#1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150)

这是一个带有InnoDB表引擎的MySQL数据库.

推荐答案

可能还有另一个表,其外键引用了您试图更改的主键.

要找出哪个表导致了错误,可以运行SHOW ENGINE INNODB STATUS,然后查看LATEST FOREIGN KEY ERROR部分.

Mysql相关问答推荐

如何将MySQL与AS&Quot;语法一起用于存储过程返回的表?

筛选器中的Case When语句

找出同一表中列A中的每个值在列B中出现的次数

MySQL中如何对字符串进行算术运算?

MySQL:获取连续记录的数量(日期)?

按特定顺序匹配 EventS 和下一个 EventA 之前的第一个 Event 之间的记录

在带有 D.I 的 .NET AWS Lambda 中使用 MySql.Data

如何根据购买的商品数量查找 unique_ids 的数量

如何使用mysql更新列中的json数据

估计对大表进行分区所需的时间

如何优化使用多个 LEFT JOIN 和 GROUP BY 子句的慢速 MySQL 查询?

Mysql Pivot 查询/建议

当用它的别名替换 (MAX(s.salary) - MIN(s.salary) 它将不起作用.. 为什么?

如何使用同一个表在 2 个字段上左连接

mySQL 中的主数据库和 IF 错误?

处理 Visits 表中数百万行的最佳方法是什么?

显示值为空的所有列名

如何在mysql select查询中获取两个日期之间的日期列表

我的 PDO 声明不起作用

MySQL:唯一字段需要是索引吗?