尝试在 Oracle 中创建以特定表中的最大值开头的序列。为什么这不起作用?
CREATE SEQUENCE reservation_sequence
MINVALUE 0
START WITH (SELECT MAX(reservation_id)
FROM reservation)
INCREMENT BY 1
CACHE 20;
尝试在 Oracle 中创建以特定表中的最大值开头的序列。为什么这不起作用?
CREATE SEQUENCE reservation_sequence
MINVALUE 0
START WITH (SELECT MAX(reservation_id)
FROM reservation)
INCREMENT BY 1
CACHE 20;
您不能以这种方式将 DDL 与 DML 混合。
最好的选择是匿名 PL/SQL 块:
另外,你确定你想要
max()
而不是max()+1
?在Oracle SQL 手册中,您可以找到一个 语法图
所以 START WITH 必须后跟一个整数,仅此而已。整数也由本手册中的语法图定义 (要找到整数的语法图,请查看手册的索引
你会得到的错误将是
错误的描述也可以在其中一本手册中找到。
如果您查看错误,则可能还会显示语句中发生错误的确切位置。