Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle SQL secara otomatis membuat PK VARCHAR yang bertambah

Ini adalah contoh penggunaan yang baik untuk IDENTITY dan VIRTUAL kolom. Jadi, tidak perlu Urutan tambahan dan PICU .

Demo:

CREATE TABLE sample (
    serial_no NUMBER GENERATED ALWAYS AS IDENTITY,
    tnt_id GENERATED ALWAYS AS (CONCAT('TNT', LPAD(serial_no, 5, '0'))) VIRTUAL,
    wtv    NUMBER(3)
);

insert into sample (wtv) values(100);
insert into sample (wtv) values(200);
insert into sample (wtv) values(300);

Hasil:

select * from sample;

 SERIAL_NO TNT_ID                         WTV
---------- ----------------------- ----------
         1 TNT00001                       100
         2 TNT00002                       200
         3 TNT00003                       300

Cara kerjanya:

  1. NUMBER GENERATED ALWAYS AS IDENTITY :Ini secara otomatis membuat urutan yang diperlukan untuk Anda, dimulai dengan 1 dan bertambah 1 secara default.
  2. GENERATED ALWAYS AS VIRTUAL :Ini membuat kolom virtual yang nilainya dihitung secara otomatis menggunakan nilai kolom lainnya. Dalam demo ini menggunakan kolom identitas.
  3. LPAD :Ini akan memastikan nol dibiarkan terisi saat nilai kolom bertambah, tetapi juga akan memastikan bahwa ketika angka bertambah, panjang string tidak bertambah.
  4. CONCAT :Ini akan menggabungkan TNT ke nilai di atas.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLS-00049 VARIABEL PENGIKAT BURUK

  2. java.sql.SQLRecoverableException:Adaptor Jaringan tidak dapat membuat koneksi

  3. 1000000 hingga 1M dan 1000 hingga 1K dalam permintaan oracle

  4. Oracle.DataAccess.Client.OracleException ORA-03135:koneksi kehilangan kontak

  5. Nilai CLOB masuk/kembali dari plsql (penentu lokasi LOB tidak valid:ORA-22275)