Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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 sql:将主键更改为另一个唯一元素列表_Mysql_Sql - Fatal编程技术网

Mysql sql:将主键更改为另一个唯一元素列表

Mysql sql:将主键更改为另一个唯一元素列表,mysql,sql,Mysql,Sql,我想将表的ID更改为其他唯一值。 这是一个简化的示例: CREATE TABLE IF NOT EXISTS test ( id int(11) NOT NULL, reverse_id int(11) NOT NULL, PRIMARY KEY (id), UNIQUE KEY reverse_id (reverse_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO test (id, reverse_id) VAL

我想将表的ID更改为其他唯一值。 这是一个简化的示例:

CREATE TABLE IF NOT EXISTS test (
  id int(11) NOT NULL,
  reverse_id int(11) NOT NULL,
  PRIMARY KEY (id),
  UNIQUE KEY reverse_id (reverse_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO  test (id, reverse_id) VALUES ('1',  '2'), ('2',  '1');

UPDATE test SET id = reverse_id;

# Duplicate entry '2' for key 'PRIMARY' 
我正在寻找一个只在更新结束时检查id元素唯一性的命令


[我知道我可以创建第二行并将该行的状态更改为主,然后我可以更新id并重置主状态,但我希望有一个命令,而无需添加或更改其他行、表]

如果创建的表的主键为
reverse\u id
这在您的定义中是唯一的,因此它是主键的有效候选项


根据定义,主键是唯一的-这个约束阻止您实现您想要的

据我所知,这在MySQL中是不可能的

它既不在语句级对约束求值(在处理时在行级对约束求值),也不允许您定义要延迟的约束(因此将在提交时对约束求值)


如果要“重新编号”主键,我可以看到的唯一选项是:删除主键,重新编号ID,然后重新创建主键

您可以删除主键,但MySQL只会创建一个隐藏的整数主键,从而违反您的要求。