Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Can';无法编辑表格,因为存在';s没有主键,可以';无法创建密钥,因为存在重复的值_Mysql_Phpmyadmin - Fatal编程技术网

Mysql Can';无法编辑表格,因为存在';s没有主键,可以';无法创建密钥,因为存在重复的值

Mysql Can';无法编辑表格,因为存在';s没有主键,可以';无法创建密钥,因为存在重复的值,mysql,phpmyadmin,Mysql,Phpmyadmin,标题说明了这一切——MySql数据库中有一个表我希望能够编辑——所以我尝试分配一个主键。不幸的是,由于某些原因,存在一个重复的记录,这意味着我无法创建主键——在第22条军规中,我无法更改或删除该记录以便创建键,因为没有键(ad infinatum) 除了插入一个新字段并用唯一数据填充它、创建键然后更改重复记录并删除新字段,或者清除表之外,还有什么简单的方法吗?我认为您的解决方案在这里是最简单的——创建一个新列用作临时主键 原因是phpMyAdmin需要一个键来进行编辑,因为如果没有键,则很难确保

标题说明了这一切——MySql数据库中有一个表我希望能够编辑——所以我尝试分配一个主键。不幸的是,由于某些原因,存在一个重复的记录,这意味着我无法创建主键——在第22条军规中,我无法更改或删除该记录以便创建键,因为没有键(ad infinatum)


除了插入一个新字段并用唯一数据填充它、创建键然后更改重复记录并删除新字段,或者清除表之外,还有什么简单的方法吗?

我认为您的解决方案在这里是最简单的——创建一个新列用作临时主键

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

编辑
顺便说一句,phpMyAdmin添加了一些支持(从4.5.0版开始),可以在不存在主键的情况下进行编辑,但是表需要有足够的唯一信息才能进行编辑,并且不能保证对每个结构都可用,因此最好的方法(在使用phpMyAdmin和通用MySQL数据完整性方面)要有一个主键。

我认为您的解决方案在这里是最简单的——创建一个新列用作临时主键

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

编辑
顺便说一句,phpMyAdmin添加了一些支持(从4.5.0版开始),可以在不存在主键的情况下进行编辑,但是表需要有足够的唯一信息才能进行编辑,并且不能保证对每个结构都可用,因此最好的方法(在使用phpMyAdmin和通用MySQL数据完整性方面)将在config.inc.php中设置主键。

$cfg['RowActionLinksWithoutUnique'] = true;

但请记住,它不是保存以供使用。

在config.inc.php中设置

$cfg['RowActionLinksWithoutUnique'] = true;

但请记住,它不是保存以供使用。

您应该能够创建一个名为id或其他内容的主键,它会相应地自动将其添加到数据库中。我认为这与重复记录无关。您尝试过从Mysql命令行编辑表。您应该能够在没有PK的情况下进行编辑,但我知道Mysql Workbench有一个禁止这样做的设置,可能是phpmyadmin添加了这个设置。您应该能够创建一个名为id或其他的主键,它会相应地自动将其添加到数据库中。我认为这与重复记录无关。您尝试过从Mysql命令行编辑表。你应该能够在没有PK的情况下进行编辑,但我知道Mysql Workbench有一个禁止这样做的设置,可能是phpmyadmin添加的。这行代码不在那里,但我添加了它,它工作起来很有魅力!这一行不在那里,但我添加了它,它的工作就像一个魅力!