要在dbtest表中增加一个自增的字段id,试过以下方法,在openGauss下出错,第一个语名在pgsql下可以正常生成自增字段。
ALTER TABLE dbtest ADD COLUMN id SERIAL PRIMARY KEY;
ALTER TABLE dbtest ADD COLUMN id SERIAL;
ALTER TABLE dbtest ADD COLUMN id INT GENERATED BY DEFAULT AS IDENTITY;
ALTER TABLE dbtest ADD COLUMN id INT GENERATED ALWAYS AS IDENTITY;
ALTER TABLE dbtest ADD code varchar ( 30 ); 这个是可正常增加字段的。
ALTER TABLE dbtest ADD id int4; 这个也是可正常增加字段的,但不是自增。也不是主键。
现表dbtest中还没有记录,如果表中已有记录,该用什么语句?
分两种情况:1,表中有记录,有id字段,且ID是唯一值;2表中无id字段,但有其它记录。
在Navicat 中
1在Navicat的查询编辑器中执行以下语句来创建序列:
CREATE SEQUENCE id_seq START 1;
2再设ID默认值:nextval(‘id_seq’::regclass)
这样,可以了。如果数据有记录,要注意设置序列的开当前值和开始值。
但有没有什么办法,不这样做?从其它数据库转过来,有很多表,每个表都要弄个序列?


