oracle 创建序列,序列的默认值类型是数字么,不能用函数和SQL语句么?
有一张表a,里面有十条数据,id从1开始到10,现在要创建一个序列,以后每增加一条数据,id自动加1,从10开始,创建序列的默认开始为表a的id最大值,大家知道怎么做吗?...
有一张表a,里面有十条数据,id从1开始到10,现在要创建一个序列,以后每增加一条数据,id自动加1,从10开始,创建序列的默认开始为表a的id最大值,大家知道怎么做吗?在线等。
展开
2个回答
展开全部
没太懂你的意思 如果你的表里已经有10 条数据 你创建序列可以从11 开始 每次增1 创建个触发器在每次插入数据的时候 id自增
追问
是的,就是这样,但是现在11这个数字我不知道,我要用查询才能得出来,而且项目组需要最好在创建序列这条SQL中就能查询出11这个数据,但是create SEQUENCE log_new_sequence
INCREMENT BY 1
START WITH (select max(id) from a)
CACHE 10;
这样写是不行的。
追答
序列的初始值是不可以改变的 按照你这么写 初始值就是个不定数值 当然不可以
你在创建序列的时候 先查询出来表有多少条数据 之后再创建不就可以么 除非你的表的数据在随时变化
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询