mysql - MySql使用Unique Key约束增加单元格值

mysql - MySql使用Unique Key约束增加单元格值,第1张

我有一个包含可以排序的项目的表格,看起来有点像这样:

CREATE TABLE `mytable` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(1024) NOT NULL,
  `position` int(11) NOT NULL
  PRIMARY KEY (`uid`),
  UNIQUE KEY `Position_UNIQUE` (`position`)
)

如您所见,位置必须是唯一的。现在每当我在表中插入一条新记录时,我希望它具有位置#1,因此我需要将所有其他值增加一。

如果我去

update mytable set position = position   1

我可以投诉我违反了我的唯一密钥限制(错误代码:1062。密钥'Position_UNIQUE'重复输入'2'。

我如何以聪明的方式做到这一点?

最佳答案:

1 个答案:

答案 0 :(得分:0)

你需要通过"添加"顺序。子句:

update mytable set position = position   1 order by position desc;
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复