AUTO_INCREMENT未按预期工作

时间:2017-02-14 10:33:41

标签: mysql sql

我遇到一个奇怪的问题,即自动增量无法正常工作。

我有两张表1和表2。

所有新条目均列入表1。

几天后,一旦表1值过时,它们就会被移到表2中

这样做的代码大致如此处所示(隐藏了一些部分):

    $Transaction->Begin();

    /*
     * 1) Delete items from the original table (Table 1).
     *      
     */

    /*
     * 2) Delete rows that we are going to write if they already exist
     * in Table 2
     */

    /*
     * 3) Insert into Table 2
     *
    */

    $Transaction->Commit();

我的问题是,在归档操作之后,当我尝试在表1中插入新值时,我看到设置为自动增量的主键未按预期工作。新条目与旧值具有相同的密钥。

查看附件中的图片

表1:

enter image description here

如此处所示,在将旧条目归档到表2后,新插入了值127和128(见下图)

表2:

enter image description here

表2已经包含了密钥127和128的值。保证表2中的值总是从表1移到表2,这是它唯一的插入源,这意味着密钥127和128必须是在某些时间点列于表1中。我在这里不知道当我插入新值时,表1中的ID 127和128会再次出现。

表1的模式:

CREATE TABLE `table1` (
`caseid` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`caseid`),
) ENGINE=InnoDB AUTO_INCREMENT=132 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;

表2的模式:

CREATE TABLE `table2` (
`caseid` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`caseid`),
) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;

0 个答案:

没有答案