ОК, так как вы работаете в Oracle 11g, там нет столбца identity
, поэтому вернитесь к несколько шагов .Вот пример:
Я создаю таблицу, которая имитирует вашу импортированную таблицу:
SQL> create table tab_import as
2 select ename, job, sal
3 from emp
4 where deptno = 10;
Table created.
Добавьте столбец идентификатора:
SQL> alter table tab_import add id number;
Table altered.
Создайте последовательность, которая будет использоваться для заполнения столбца ID:
SQL> create sequence seq_imp;
Sequence created.
Обновите текущие строки:
SQL> update tab_import set
2 id = seq_imp.nextval;
3 rows updated.
Создайте триггер, который позаботится о будущих вставках (если есть):
SQL> create or replace trigger trg_bi_imp
2 before insert on tab_import
3 for each row
4 begin
5 :new.id := seq_imp.nextval;
6 end;
7 /
Trigger created.
Проверьте, что в таблице на данный момент:
SQL> select * from tab_import;
ENAME JOB SAL ID
---------- --------- ---------- ----------
CLARK MANAGER 2450 1
KING PRESIDENT 5000 2
MILLER CLERK 1300 3
Давайте import еще несколько строк:
SQL> insert into tab_import (ename, job, sal)
2 select ename, job, sal
3 from emp
4 where deptno = 20;
3 rows created.
триггер имел молча заполнил столбец ID:
SQL> select * From tab_import;
ENAME JOB SAL ID
---------- --------- ---------- ----------
CLARK MANAGER 2450 1
KING PRESIDENT 5000 2
MILLER CLERK 1300 3
SMITH CLERK 800 4
JONES MANAGER 2975 5
FORD ANALYST 3000 6
6 rows selected.
SQL>
Вскоре: вам нужно
- изменить таблицу и добавить столбец ID
- создать последовательность
- создать триггер
Конец.