数据库批量sql插入语句动态获取最新自增id问题如何解决?

在批量插入语句后,动态查询当前最大的id,同时减少打开关闭操作。

        /// <summary>

        /// 多语句插入,动态获取最新id

        /// </summary>
        public void insertmult()
        {
            mysqldbctrl db = new mysqldbctrl("");
            mysqldatareader dr=null;
            string str_cmd = "",id="0";
            string str_cmd_id="select last_insert_id() as id";
            try
            {
                if (db.begindbaccess())
                {
                    for (int i = 0; i < 10; i++)
                    {
                        //在未提交事务前获取当前表中的最新id,可以避免多次库连接关闭
                        dr = db.execute_datareader(str_cmd_id);
                        if (dr.read())
                        {
                            id = dr["id"].tostring();
                        }
                        dr.close();
                        str_cmd = "insert into test (name) values ('" + id + "')";
                        if (i == 9)
                            db.execute_nonquery(str_cmd, true);
                        else db.execute_nonquery(str_cmd, false);
                    }
                }
                db.enddbaccess();
            }
            catch (exception ex)
            {
                if (db != null)
                    db.enddbaccess();
            }
        }
(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐