Mysql的 auto_increment 使用问题

我建表时将id设为了 auto increment , 后来有我使用时发现id应该是从1开始的,但是结果却是从2开始递增,我是使用的C++,下面的是我部分代码:

        sql_->SetAutoCommit(0);

        if(sql_->InsertUserLoginTable(id,"") == -1)
        {
            result = "regist faild1";
        }
        else
        {
            std::string ID = sql_->GetLastID();
            std::cout << "ID : " << ID << std::endl;
            if (sql_->InsertLoginInfoTable(ID, "", "", "", IMEI, BTMAC) == -1)
            {
                result = "regist faild2";
            }
            else if (sql_->InsertUserInfoTable(ID, FaceID, NickName, "", "", "3") == -1)
            {
                result = "regist faild3";
            }
            else if (sql_->InsertUserRecordTable(ID, RegistIP) == -1)
            {
                result = "regist faild4";
            }
            else
            {
                result = "regist success";
            }
        }

        if(result == "regist success")
        {
            sql_->Commit(0);

        }
        else
        {
            sql_->Commit(1);
        }
        sql_->SetAutoCommit(1);

其中有一些是我自己封装的方法,部分如下:

void SetAutoCommit(int i)
{
sql->AutoCommit(i);
}

int Commit(int i)
{
sql->CommitSQL(i);
}

void AutoCommit(int i)
{
mysql_autocommit(connection_,i);
}

int CommitSQL(int i)
{
if(i == 1)
{
mysql_rollback(connection_);
return -1;
}
else
{
mysql_commit(connection_);
return 0;
}
}


在使用MySQL中,经常会在表中建立一个自增的ID字段,利用自增ID能够快速建立索引,也是MySQL官方比较推荐的一种方式,但是,这种方式在大量数据且配置主从时,可能会出现由于自增ID导致同步失败的情况
首先需要了解一点

Mysql主从同步主要通过bin log来同步,而MySQl中bin log最大值为1G,
 
这种情况触发条件如下:
1、数据库配置主......
答案就在这里:谨慎使用MySQL auto_increment
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

那是否已经插入一个序号为1的记录,还是第一条记录插入失败了

我刚刚又重建了数据库尝试,然后这回是从1开始的,我就不知道是什么问题了

我刚刚又重建了数据库尝试,然后这回是从1开始的,我就不知道是什么问题了