【问题标题】:reset auto_increment in innodb在 innodb 中重置 auto_increment
【发布时间】:2013-12-11 08:02:54
【问题描述】:

有两个表:

maintable(id int 主键 auto_increment, name char);

subtable(id int 主键,maintable_id int,索引mianid(maintable_id),约束mainid外键(maintable_id)引用maintable(id));

在 maintable 中添加和删除后,我想重置 maintable 的 auto_increment,然后我使用“alter table maintable auto_increment = 1”,但我只是得到“查询正常,0 行受影响”。 并且“truncate maintable”被禁止,因为它被子表引用。

所以我的问题是:如何重置 maintable 的 auto_increment? 感谢任何想法!非常感谢!!!

ps:mysql5.6; InnoDB。

【问题讨论】:

    标签: mysql innodb auto-increment


    【解决方案1】:

    首先删除所有参考记录。 之后这样做

    alter table maintable auto_increment=1;
    

    它会起作用的。

    请参考Click here

    【讨论】:

    • 谢谢!我确实认为这会起作用,但是如果有其他表引用该表怎么办,那么要重置 maintable 的 auto_increment,我需要删除所有对它的引用吗?这个问题有更好的解决方案吗?还是我必须这样做?
    • @user3035623 没有。 MySQL(甚至人们)无法知道您是否在另一个表中引用了此字段,除非您有一些触发器或约束。在这种情况下,您应该(以某种方式)更新您的触发器(或创建新闻)以检查该条件。
    猜你喜欢
    • 2015-10-12
    • 2013-06-28
    • 2012-04-28
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2017-04-14
    相关资源
    最近更新 更多