oracle插入序号怎么从最大的开始增加
比如我数据库有10万条数据,id是1到10万,我又要插入1万条数据,怎么写可以让序号从100001开始,id不是主键也不是自增长序号,我就想问语句怎么写生成类似于自增长一...
比如我数据库有10万条数据,id是1到10万,我又要插入1万条数据,怎么写可以让序号从100001开始,id不是主键也不是自增长序号,我就想问语句怎么写生成类似于自增长一样的序号
展开
1个回答
展开全部
如果没有必须累加1的要求,允许跳号的话,最好使用sequence, 没有性能问题。
可以在创建sequence的时候设定开始值就是100000,插入的时候用select sequenceName.Nextval 就可以自增长。
如果不采用这种方式,可以新建一张表存放当前ID的最大值,每次从这里取值,然后再update + 1. 记得需要for update锁表,以免并发时号码重复。不建议这种方式,性能比较差
可以在创建sequence的时候设定开始值就是100000,插入的时候用select sequenceName.Nextval 就可以自增长。
如果不采用这种方式,可以新建一张表存放当前ID的最大值,每次从这里取值,然后再update + 1. 记得需要for update锁表,以免并发时号码重复。不建议这种方式,性能比较差
更多追问追答
追问
表里面已经有数据了 ,创建不了序列,程序插入的时候都是一条一条的,max+1可以 ,我后台插入就不行了
追答
max+1的方法不好,如果数据量上去了会很慢
后台一样可以插入的,你把代码贴出来,估计写的有问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询