当前位置: 首页 > 知识库问答 >
问题:

如何从mysql表中删除主键,该表也是同一表中的主键和外键。?

郑桐
2023-03-14

我有两个不同的表,每个表有20k个条目,我错误地在同一个表中将summaryId作为主键和外键,但现在我想删除主键约束,它也是自动增量的。当我尝试drop primary key语法时,它返回一个错误:

#1025-重命名'.\tg#sql-a38_7f'到'.\tg\rest_web_availability_summary_pm'时出错(errno: 150)

我尝试了以下查询。

ALTER TABLE 'table_name' DROP PRIMARY KEY

如果有人有任何想法,请告诉我如何删除主键。

共有3个答案

公沈浪
2023-03-14

如前所述,您需要先移除< code>FK。在MySQL上,这样做:

ALTER TABLE `table_name` DROP FOREIGN KEY `id_name_fk`;

ALTER TABLE `table_name` DROP INDEX `id_name_fk`;
姬昀
2023-03-14

我也遇到了同样的问题,结果是当它被其他字段引用时,mysql要求列是惟一的,所以我首先添加了一个惟一的约束,从此过上了幸福的生活:

alter table `mytable` add unique key `key` (`fieldname`);
alter table `mytable` drop primary key; -- which is fieldname...
潘自强
2023-03-14

问题是,您的字段是auto_increment。您应该先删除auto_increment,然后删除主键…

ALTER TABLE `mytable` CHANGE COLUMN `id` `id` INT(11) NOT NULL, DROP PRIMARY KEY;

不使用auto_increment重新定义列会删除它

 类似资料:
  • 我刚开始冬眠并尝试使用标准。我一直在从2个表(即主外键在realtion中的表)中获取结果。 我有Carpooler和SourceToDestination细节DTO,现在基于用户搜索数据,我想填充Carpooler Object,其中包含SourceToDestination细节,但我没有得到它,不知道如何使用标准API。 通过以上标准API,我只得到了SourceToDestination细节

  • 很抱歉我问了一个相当愚蠢的问题。例如,一个表可以有由“user_id”和“employee_id”组成的复合主键吗 和另一个包含“user_id”作为主键的表?

  • 问题内容: 这是我尝试过的但失败了: 有人给小费吗? 问题答案: 添加列之后,您始终可以添加主键: 至于为什么脚本不起作用,您需要指定,而不仅仅是单词:

  • 配置了单库主从同步,当执行DROP TABLE test_c.test1122;也是同步日志中执行的语句。 从库无法同步删除怎么解决?

  • 问题内容: 我有以下表模式,它将user_customers映射到实时MySQL数据库的权限: 我想删除user_customer_id和Permission_id的主键,并保留id的主键。 当我运行命令时: 我收到以下错误: 如何删除列的主键? 问题答案: 如果没有索引,则维护自动增量列会变得太昂贵,这就是为什么要求将自动增量列作为索引的最左侧部分的原因。 您应该在删除键之前删除autoincr

  • null null 我没有任何可以作为主键字段。 这里的“eme_request”和“eme_attachment”是主表。 我想知道如何插入表格? 这些表(eme_request、eme_gf_relevent、eme_non_gf_relevent、eme_attachment)将在一个表单请求中插入。 所以我不了解如何在主表中生成主键以及如何将主键作为外键插入子表?