Oracle
 sql >> Baza danych >  >> RDS >> Oracle

12c Autopopulacja kolumny z wartością sekwencji

We wczorajszym poście na blogu pisałem o stworzeniu tabeli z wartością IDENTITY. Ale nową funkcją Oracle 12c, którą bardziej lubię, jest umożliwienie sekwencji jako generatora liczb dla domyślnej wartości kolumny. Aby zobaczyć, co mam na myśli, spójrz na ten przykład:

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

Jak widać, kolumna ID mojej tabeli testowej zawiera klauzulę DEFAULT, która używa NEXTVAL utworzonej przeze mnie sekwencji. Teraz wstawmy trochę danych do tabeli.

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

Jak widać, do wypełnienia wartości użyto sekwencji Oracle. Na pierwszy rzut oka ułatwiłoby to życie modelarzowi danych, ponieważ nie musiałby iść tradycyjną drogą kodowania wyzwalacza w celu wygenerowania NEXTVAL i przypisania tej wartości do kolumny. Jednak to automatyczne wypełnianie wartości kolumny sekwencją działa tylko wtedy, gdy nie określisz wartości, jeśli pozwolisz jej domyślnie. Jeśli jawnie określisz wartość, ta metoda nie użyje sekwencji. Wyzwalacz, jeśli został prawidłowo zakodowany, wymusiłby użycie następnej wartości sekwencji dla kolumny.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. różnica między NLS_NCHAR_CHARACTERSET i NLS_CHARACTERSET dla Oracle

  2. Pobierz VIEW ddl za pomocą zapytania

  3. Oracle - Jak wygenerować skrypt od programisty sql

  4. Dostrajanie wydajności PL/SQL dla zapytań z symbolami wieloznacznymi LIKE '%...%'

  5. Jak wysłać żądanie POST z danymi formularza i parametrami w PL/SQL?