我面临的问题,而添加新的列作为自动增量在现有的表。当我使用这个命令:
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"
型有没有人能帮我一下
q1qsirdb1#
这是因为您对alter table使用了错误的语法。正确的是:
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>
型
1条答案
按热度按时间q1qsirdb1#
这是因为您对
alter table
使用了错误的语法。正确的是:
字符串
[编辑]
正如您所说的那样,这样的语句不起作用,您的Oracle数据库版本似乎不支持标识列。在这种情况下,您必须使用数据库触发器来执行此操作。以下是方法:
型
测试:
型