Rumah  >  Artikel  >  pangkalan data  >  Cara menyediakan kenaikan automatik dalam oracle

Cara menyediakan kenaikan automatik dalam oracle

PHPz
PHPzasal
2023-04-18 15:19:386667semak imbas

Tiada ciri autokenaikan terbina dalam dalam pangkalan data Oracle, tetapi terdapat banyak cara untuk mensimulasikannya. Berikut ialah beberapa kaedah untuk mensimulasikan kenaikan automatik:

  1. Jujukan (jujukan)

Jujukan ialah objek yang digunakan untuk menjana nombor unik dalam pangkalan data Oracle, serupa dengan auto- kenaikan . Urutan boleh dibuat secara berasingan sebelum atau selepas jadual dibuat, dan boleh diubah mengikut keperluan.

Pertama, buat jujukan:

CREATE SEQUENCE seq_name
START WITH 1
INCREMENT BY 1
NOMAXVALUE;

Ini akan mencipta jujukan yang dipanggil seq_name dengan nilai mula 1, saiz langkah 1 dan tiada nilai maksimum.

Kemudian, gunakan jujukan pada jadual:

CREATE TABLE table_name (
  id NUMBER(10) DEFAULT seq_name.NEXTVAL PRIMARY KEY,
  ...
);

Dalam contoh ini, tetapkan atribut NEXTVAL jujukan sebagai nilai lalai kepada lajur id dan takrifkan lajur id sebagai kunci utama.

Kini, setiap kali anda memasukkan baris baharu ke dalam jadual, ID penambahan automatik yang unik ditetapkan secara automatik.

  1. Pencetus

Cara lain untuk mensimulasikan autokenaikan ialah menggunakan pencetus. Ini memerlukan pencetus pada jadual yang secara automatik memberikan nombor unik setiap kali baris dimasukkan.

Mula-mula, buat pencetus:

CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
  SELECT seq_name.NEXTVAL INTO :new.id FROM dual;
END;

Ini akan secara automatik menetapkan jujukan kepada nilai seterusnya sebelum memasukkan baris.

Kemudian, gunakan pencetus pada jadual:

CREATE TABLE table_name (
  id NUMBER(10) PRIMARY KEY,
  ...
);

CREATE TRIGGER trigger_name
BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
  SELECT seq_name.NEXTVAL INTO :new.id FROM dual;
END;

Dalam contoh ini, takrifkan lajur id sebagai kunci utama dan buat pencetus bernama trigger_name yang akan mencetuskan bila-bila masa lajur id diberikan nombor unik secara automatik semasa mendayung.

  1. Lajur pengecam unik

Kaedah terakhir ialah mencipta lajur pengecam unik dalam jadual yang menggunakan GUID atau UUID sebagai pengecam unik . Kaedah ini lebih mudah untuk dilaksanakan daripada dua kaedah sebelumnya, tetapi ia mempunyai beberapa kelemahan, seperti pengecam tidak berurutan.

Pertama, cipta jadual:

CREATE TABLE table_name (
  id VARCHAR2(36) PRIMARY KEY DEFAULT sys_guid(),
  ...
);

Ini akan mencipta lajur pengenalan unik yang dipanggil id, secara automatik menetapkan GUID unik menggunakan fungsi sys_guid().

Kemudian, masukkan data ke dalam jadual:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

Dalam contoh ini, setiap kali baris baharu dimasukkan, GUID unik ditetapkan secara automatik.

Tidak kira kaedah yang anda gunakan untuk mensimulasikan kenaikan automatik, anda harus memberi perhatian kepada beberapa kes khas, seperti kegagalan sisipan dan ID yang ditetapkan semasa gulung balik. Pada masa yang sama, pilih kaedah yang sesuai untuk mereka bentuk sistem berdasarkan keperluan senario aplikasi sebenar.

Atas ialah kandungan terperinci Cara menyediakan kenaikan automatik dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn