Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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表中删除主键,该表同时是主键和外键。?_Mysql_Foreign Keys_Primary Key_Foreign Key Relationship_Primary Key Design - Fatal编程技术网

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

如何从mysql表中删除主键,该表同时是主键和外键。?,mysql,foreign-keys,primary-key,foreign-key-relationship,primary-key-design,Mysql,Foreign Keys,Primary Key,Foreign Key Relationship,Primary Key Design,我有两个不同的表,每个表有20k个条目,我错误地将summaryId作为同一个表中的主键和外键,但现在我想删除主键约束,它也是自动递增的。当我尝试删除主键语法时,它会返回一个错误: #1025-将“.\tg”sql-a38_7f”重命名为“.\tg\rest\u web\u availability\u summary\u pm”时出错(错误号:150) 我尝试了下面的查询 ALTER TABLE 'table_name' DROP PRIMARY KEY 如果有人有任何想法,请告诉我如何删除

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

#1025-将“.\tg”sql-a38_7f”重命名为“.\tg\rest\u web\u availability\u summary\u pm”时出错(错误号:150)

我尝试了下面的查询

ALTER TABLE 'table_name' DROP PRIMARY KEY

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

问题是,您的字段是
自动增量
。您应该先删除自动增量,然后删除主键。。所以试试这个:

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

在没有自动增量的情况下重新定义列将删除它

我也遇到了同样的问题,结果发现,由于其他字段引用了该列,mysql要求该列是唯一的,因此我首先添加了一个唯一的约束,从此过上了幸福的生活:

alter table `mytable` add unique key `key` (`fieldname`);
alter table `mytable` drop primary key; -- which is fieldname...

如前所述,您需要先删除
FK
s。在MySQL上,执行以下操作:

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

ALTER TABLE `table_name` DROP INDEX `id_name_fk`;

您使用什么命令删除主键?ALTER TABLE“TABLE_name”drop primary key我尝试过ALTER TABLE“TABLE_name”drop primary key ALTER TABLE“TABLE_name”drop primary key“column_name”添加主键(column2);但是上面的命令对我都没有帮助。@AdesHandey首先从字段中删除
auto\u increment
标志。上述声明应该有效。