具有多个外线约束的 ALTER TABLE 的铁路图不正确?
Incorrect railroad diagram for ALTER TABLE with multiple out-of-line constraints?
目前使用 18c,但这种明显的不一致存在于早期版本中(肯定会回到 11g)。
在这种特殊情况下,我向现有 table.
添加了多个外线约束
所有铁路图都可以在这里找到:https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/ALTER-TABLE.html
这是ALTER TABLE
的铁路图:
那么,这是constraint_clauses
的铁路图:
最后,这是out_of_line_constraint
的铁路图:
铁路图中没有(
和)
或,
。但是 SQL 查询必须有它们。
这是有效的代码:
Create table a ( x number );
Alter table a add (
constraint x1 check ( x > 0 ),
constraint x2 check ( x < 10)
);
我阅读和解释铁路图的错误在哪里?还有什么我必须知道的吗?
Create table doc 包括括号:
对于一个约束语句,括号是可选的,例如:
Alter table a add constraint x1 check ( x > 0 )
我在 doc 中没有看到约束的括号,您发现它似乎缺失了。
您不需要括号或逗号。这有效:
alter table a
add constraint x1 check (x > 0)
add constraint x2 check (x < 10);
但无论如何这都是文档错误,因为铁路图并未表明 "constraint_clauses" 引用是可重复的。
目前使用 18c,但这种明显的不一致存在于早期版本中(肯定会回到 11g)。
在这种特殊情况下,我向现有 table.
添加了多个外线约束所有铁路图都可以在这里找到:https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/ALTER-TABLE.html
这是ALTER TABLE
的铁路图:
那么,这是constraint_clauses
的铁路图:
最后,这是out_of_line_constraint
的铁路图:
铁路图中没有(
和)
或,
。但是 SQL 查询必须有它们。
这是有效的代码:
Create table a ( x number );
Alter table a add (
constraint x1 check ( x > 0 ),
constraint x2 check ( x < 10)
);
我阅读和解释铁路图的错误在哪里?还有什么我必须知道的吗?
Create table doc 包括括号:
对于一个约束语句,括号是可选的,例如:
Alter table a add constraint x1 check ( x > 0 )
我在 doc 中没有看到约束的括号,您发现它似乎缺失了。
您不需要括号或逗号。这有效:
alter table a
add constraint x1 check (x > 0)
add constraint x2 check (x < 10);
但无论如何这都是文档错误,因为铁路图并未表明 "constraint_clauses" 引用是可重复的。