values((select max(id)+1 from user us),'zhangsan',22,' 123@qq.com ')
注意: 表要添加别名 否则会报错“You can't specify target table 'user' for update in FROM clause”
加判断:select case when max(sid) IS NULL then 1 else max(sid)+1 end from A
insert into XT_ZSJG(ID,CREATETIME)
values((select case when max(id) IS NULL then 1 else max(id)+1 end from XT_ZSJG us),SYSDATE)
myrecord.Open "select * from xsgl order by 编号 desc", myconn 这句代码是让记录按“编号”降序排列,这样的话第一条记录里编号的直最大MsgBox myrecord.Fields("编号") + 1
上面的使用MAX()也可以,我提供不一样的思路
一种较简单的,直接获取你数据库中的最后一个ID号,在程序里自己写方法传入这个ID号,处理后返回出一个+1的ID号!这个就是新ID,不过这个方法是不会自动补漏,可能你会删除掉一个004,记录还存在003和005,而新ID就会是006!另外一种就是在数据库中取出ID整列值,并对值进行一个循环比较,下一列是否比上一列的值大1,不是证明有漏,可取该值为新ID号,如果判断到最后没漏,也是直接在最后的值+1为最新ID值希望对你有帮助
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)