lightdb alter table add column 语法支持括号

背景

在 Oracle 中,在旧表上用 alter table 命令一次添加多列是可以把列定义放在要括号里的,而 lightdb 之前版本 alter table 命令必须要多次执行 add .... 此次版本允许 lightdb 有同样功能。LightDB 版本为 LightDB1.0.V202303.00.000.

用例

  1. 以下行为都是允许的
CREATE TABLE foo(a int);
ALTER TABLE foo ADD COLUMN a1 int;
ALTER TABLE foo ADD COLUMN a2 int default 3;
ALTER TABLE foo ADD COLUMN b1 int, ADD COLUMN b2 int;
ALTER TABLE foo ADD (c1 int);
ALTER TABLE foo ADD (c2 int default 3);
ALTER TABLE foo ADD (e1 int), ADD e2 int, ADD COLUMN e3 int, ADD (e4 int, e5 int);
begin
  execute immediate 'alter table foo add(d int)';
end;
/
  1. 但是如果使用了括号,则不能再加 COLUMN 关键字( oracle 没有这个关键字)。
# ALTER TABLE foo ADD COLUMN (e1 int); --fails
ERROR:  syntax error at or near "("
LINE 1: ALTER TABLE foo ADD COLUMN (e1 int);
                                   ^

posted on 2023-07-27 14:33  winter-loo  阅读(49)  评论(0编辑  收藏  举报

导航