[英]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.