繁体   English   中英

MySql递增具有唯一键约束的单元格值

[英]MySql Incrementing a cell value with a Unique Key constraint

我有一张桌子,上面有可以排序的项目,看起来像这样:

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,因此我需要将所有其他值加1。

如果我走

update mytable set position = position + 1

我可以抱怨自己的唯一按键约束遭到破坏(错误代码:1062。键“ Position_UNIQUE”的条目“ 2”重复)。

我将如何聪明地做到这一点?

您需要添加“ order by”子句:

update mytable set position = position + 1 order by position desc;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM