Oracle
 sql >> база данни >  >> RDS >> Oracle

12c Автоматично попълване на колона със стойност на последователността

Във вчерашната публикация в блога написах за създаване на таблица със стойност IDENTITY. Но новата функция на Oracle 12c, която ми харесва повече, позволява на последователност да бъде генератор на числа за стойността по подразбиране на колона. За да разберете какво имам предвид, вижте този пример:

SQL> create sequence test_seq;
Sequence created.
SQL> create table test_tab (id number default test_seq.NEXTVAL, val varchar2(20));
Table created.

Както можете да видите, колоната ID на моята тестова таблица има клауза DEFAULT, която използва NEXTVAL на последователността, която създадох. Сега нека вмъкнем някои данни в таблицата.

SQL> insert into test_tab (val) values ('first row');
1 row created.
SQL> insert into test_tab (val) values ('second row');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from test_tab;
ID VAL
---------- --------------------
1 first row
2 second row

Както можете да видите, последователността на Oracle е била използвана за попълване на стойностите. На пръв поглед това би улеснило живота на модела на данни, тъй като не би трябвало да се върви по традиционния път на кодиране на тригер за генериране на NEXTVAL и присвояване на тази стойност на колоната. Въпреки това, това автоматично попълване на стойността на колоната с последователността работи само ако не посочите стойност, ако я оставите по подразбиране. Ако изрично посочите стойността, този метод няма да използва последователността. Задействането, ако е кодирано правилно, би принудило използването на следващата стойност на последователността за колоната.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Стойностите не се показват с водеща нула в оракул

  2. Намерете всички нечислови стойности в колона в Oracle

  3. Как най-добре да управлявате исторически стойности за търсене в база данни?

  4. Как да убия работещ оператор SELECT

  5. ORACLE и TRIGGERS (вмъкнати, актуализирани, изтрити)