oracle 在添加新列作为自动增量时面临的问题

ugmeyewa  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(139)

我面临的问题,而添加新的列作为自动增量在现有的表。
当我使用这个命令:

ALTER TABLE NCS.generic_usg_data_store_dum ADD id int AUTO_INCREMENT primary key;

字符串
得到如下错误:

SQL Error: ORA-01735: invalid ALTER TABLE option
01735. 00000 -  "invalid ALTER TABLE option"


有没有人能帮我一下

q1qsirdb

q1qsirdb1#

这是因为您对alter table使用了错误的语法
正确的是:

SQL> create table test_so
  2    (name varchar2(20));

Table created.

SQL> alter table test_so add id int generated always as identity primary key;

Table altered.

SQL>

字符串

[编辑]

正如您所说的那样,这样的语句不起作用,您的Oracle数据库版本似乎不支持标识列。在这种情况下,您必须使用数据库触发器来执行此操作。以下是方法:

SQL> create table test_so
  2    (name varchar2(20));

Table created.

SQL> alter table test_so add id int;

Table altered.

SQL> create sequence seq_so;

Sequence created.

SQL> create or replace trigger trg_bi_test
  2    before insert on test_so
  3    for each row
  4    when (new.id is null)
  5  begin
  6    :new.id := seq_so.nextval;
  7  end;
  8  /

Trigger created.


测试:

SQL> insert into test_so (name) values ('Littlefoot');

1 row created.

SQL> select * from test_so;

NAME                         ID
-------------------- ----------
Littlefoot                    1

SQL>

相关问题