无法编辑表因为没有主键,所以无法创建密钥,因为存在重复值

时间:2015-02-25 15:14:59

标签: mysql phpmyadmin

标题说真的 - 我希望能够编辑MySql DB中的一个表 - 所以我尝试分配一个主键。不幸的是,由于某种原因,有一个重复的记录,这意味着我无法创建一个主键 - 并且在一点点捕获22我无法更改或删除记录,因此我创建了密钥,因为没有密钥(ad infinatum)。

有没有简单的方法可以解决这个问题,不管是插入新字段还是用唯一数据填充它,创建密钥然后更改重复记录并删除新字段 - 还是清除表格?

2 个答案:

答案 0 :(得分:2)

我认为您的解决方案最简单 - 创建一个新列以用作临时主键。

这样做的原因是phpMyAdmin需要一个键进行编辑,因为没有一个键可以很难确保编辑不会影响错误的行。无论如何,我建议完全按照您的建议进行操作,以便您可以在phpMyAdmin中进行编辑,然后将主键移动到正确的列。

修改: 顺便说一句,phpMyAdmin已经添加了一些支持(从4.5.0版本开始)进行编辑而没有主键存在,但是表格需要有足够的唯一信息才能使用,并且不能保证每个都可用。结构,所以最好的方法(使用phpMyAdmin和一般的MySQL数据完整性)都有一个主键。

答案 1 :(得分:2)

在config.inc.php中设置

$cfg['RowActionLinksWithoutUnique'] = true;

但请记住,不能保存使用。