【发布时间】:2011-08-28 18:28:02
【问题描述】:
我想在 oracle 中创建一个序列,其中列字段(Empid)的最大值必须是序列的最小值。
下面是我在同一个 stackexchange 中找到的一个
create sequence mytemp_seq start with &v_Startval;
此命令提示我输入我必须输入的列名的最大值。
如何在不提示的情况下修复 &v_startval 的值,而是直接从下面的语句中设置值
select max(empid) from mytemp..
我在下面这样尝试
create sequence mytemp_seq start with (SELECT MAX(empid) from mytemp)
但它不起作用。
【问题讨论】:
-
以下两个答案(Tony Andrews 和 schurik)在不同情况下都很好。如果这是部署脚本的一部分,我会使用 schurik 的答案,因为它会生成更具描述性的假脱机文件。如果您打算将此作为常规活动进行,我会将 Tony 的答案嵌入到一个包中(并对设计提出质疑;动态创建序列通常是设计决策不佳的结果)。