gpt4 book ai didi

MySQL AUTO DECREMENT 而不是 AUTO INCREMENT,这可能吗?

转载 作者:行者123 更新时间:2023-11-29 05:06:23 26 4
gpt4 key购买 nike

我想在表上有负的自动生成的键。

代替键:1,2,3,..,X我想要键:-1,-2,-3,...,-X

我需要这个,因为我必须创建一个镜像表以在 UNION 中与原始表一起使用,并“了解”哪些记录来自原始表,哪些记录来自镜像表。

你认为这是个好主意吗?有没有一种简单的方法来获得负自动递减键?还是我必须使用触发器?

最佳答案

不要这样做。

https://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html说:

  • Assigning a negative value to the AUTO_INCREMENT column

    In all lock modes (0, 1, and 2), the behavior of the auto-increment mechanism is not defined if you assign a negative value to the AUTO_INCREMENT column.

换句话说,沿着这条路走下去就是困惑。

MySQL 支持一个选项auto_increment_increment,您可以使用该选项定义每次递增时递增的多少,但该值必须大于 0。

mysql> set session auto_increment_increment = -1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+----------------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------------+
| Warning | 1292 | Truncated incorrect auto_increment_increment value: '-1' |
+---------+------+----------------------------------------------------------+

mysql> select @@auto_increment_increment;
+----------------------------+
| @@auto_increment_increment |
+----------------------------+
| 1 |
+----------------------------+

您解释了为什么要这样做:

我需要这个,因为我必须创建一个镜像表以在 UNION 中与原始表一起使用,并“了解”哪些记录来自原始表,哪些记录来自镜像表。

使用另一列来指示行来自哪个表:

SELECT 'original' AS WhichTable, column1, column2, column3 
FROM MyOriginalTable
UNION ALL
SELECT 'mirror', column1, column2, column3
FROM MyMirrorTable;

关于MySQL AUTO DECREMENT 而不是 AUTO INCREMENT,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47183469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com