mysql可不可以让id不自增而是自减

就是想设计两个表一个id自增一个自减然后永远都不会相同在数据量有限的情况下

你这个就很奇怪,明明可以用代码解决。
用UUID,或者时间戳,都可以保证你不相同。

可以,seed设置为很大
increasement设置为-1

MySQL可以让id不自增而是自减,但这并不是建议的做法,因为自增ID是一个很好的主键,可以帮助确保唯一性并简化查询。如果你想让ID自减,可以通过使用触发器(trigger)来实现,当插入记录时,触发器可以从已有记录的最大ID中减去1并插入新的ID。但是,使用这种方式需要小心,因为ID在插入新记录时可能会冲突。另外,如果你真的需要这种方式的自增ID,考虑使用UUID或其他的全局唯一标识符来替代自增ID,以确保唯一性。

有用的话,给个关注就行!

参考GPT和自己的思路:

很抱歉,MySQL中的id字段只能自增,无法自减。这是因为MySQL使用自增id作为数据表的主键来确保数据表的唯一性和数据完整性。如果需要一个自减id的字段,您可以自己创建一个新的字段并手动进行自减操作,但是这不是一个很好的实践方式,因为更容易出现数据冲突和数据不一致的问题。因此,建议您仍然使用自增id作为主键。

可以是可以,但是这个出发点我觉得你的设计上是有问题的。
如果你是为了区分两种不同的数据类型,你完全可以给表定义一个字段+索引来区分用户即可

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: mysql自增步长不是1,id乱了重新排序的解决办法中的 2、mysql自增id乱了重新排序的解决办法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    表名: user

    1. 删除原有主键:
    alter table user drop id;
    
    1. 添加新主键字段并设置主键:
    alter table user add id int(11) not null first;
    alter table user modify column id int(11) not null auto_increment,add primary key(id);
    
    1. 查看表:
    select * from user;
    

    ps:如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

    truncate table user;
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^