sql insert时 id为最大值+1

sql insert时 id为最大值+1,第1张

insert into from user(id,name,age,email)

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值

希望对你有帮助


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10066315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存