【发布时间】:2017-11-08 15:24:20
【问题描述】:
我想在一张桌子上有自动生成的负键。
代替键:1,2,3,..,X 我想要键:-1,-2,-3,...,-X
我需要这个,因为我必须创建一个镜像表以在 UNION 中使用原始表并“了解”哪些记录来自原始表,哪些记录来自镜像表。
你认为这是个好主意吗? 有没有一种简单的方法来获得负自动递减键?还是我必须使用触发器?
【问题讨论】:
-
另一种方法是将范围移动
id - MAX_INT,这样你就会得到-MAX_INT+1 .. 0,或者只是前缀-。 -
@lad2025 如果我运行
ALTER TABLE ic_soggetti_aux AUTO_INCREMENT = - MAXINT我会收到错误消息:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“-MAXINT”附近使用正确的语法 -
很遗憾,您错过了我的观点。我在想
INSERT INTO table_x SELECT id, cola, colb FROM src UNION ALL SELECT -id, cola, cob FROM src这样1 会变成-1 等等。或者,而不是-id,您可以按最大 INT 移动,所以id - 2^32所以1 -> -2^32+1等等
标签: mysql auto-increment