如何在 MySQL phpmyadmin 中使用 2 个自增列

use*_*221 6 mysql phpmyadmin auto-increment

是否可以使用 2 个自动增量值?

  • 一个从0开始
  • 另4000400起

请帮我

ype*_*eᵀᴹ 6

不,你不能。不是开箱即用的。可能的解决方法:

  1. 触发器AFTER INSERT触发器)。

    缺点:

    • 单纯的恐怖。带有触发器的所有其他缺点,例如维护和调试噩梦。

    好处:

    • 您可以具有FOREIGN KEY引用此列的约束。
    • 您可以单独更新第一个和第二个 id 列。
  2. 意见。如果你只是一个总是+4000400第一个自动递增值的值,你可以使用一个视图,所以基本上不存储这个值,只需在需要时计算它:

        CREATE VIEW 
            tablex_with_2nd_AI AS
        SELECT 
            tablex_id,
            colA,                                 -- other columns
            --                                    -- you need
            tablex_ix + 4000400  AS second_id
        FROM 
            tablex ;
    
    Run Code Online (Sandbox Code Playgroud)

    缺点:

    • 您不能有FOREIGN KEY引用此(虚拟)列的约束。

    好处:

    • 节省一些空间。插入速度稍快。
  3. 不要那样做,根本没有第二个自动递增列。你真的需要第二个自动递增的值吗?做什么的?对您尝试解决的实际问题的描述将有助于其他人更好地帮助您。我认为您在这里只是告诉了您如何尝试解决问题,而不是实际问题是什么。


小智 0

查看触发器选项卡 - 您应该能够创建一个触发器来根据插入更新第二个自动增量列。

    CREATE TABLE IF NOT EXISTS test2 (
    id          int(11) NOT NULL AUTO_INCREMENT,
    another_id      int(11) ,
    blah        varchar(250),
    PRIMARY KEY (`id`)  
)   ENGINE=MyISAM  DEFAULT CHARSET=latin1 ; 
Run Code Online (Sandbox Code Playgroud)

当向表中插入一行时,触发器应增加列“another_id”(您将其设置为 40004000)