Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menambah Auto-Kenaikan pada Lajur Utama Sedia Ada dalam Oracle?

Bagaimana untuk Menambah Auto-Kenaikan pada Lajur Utama Sedia Ada dalam Oracle?

Linda Hamilton
Lepaskan: 2025-01-03 05:35:39
asal
999 orang telah melayarinya

How to Add Auto-Increment to an Existing Primary Key Column in Oracle?

Menambah Auto-Tambahan pada Lajur Sedia Ada dalam Oracle

Dalam Oracle, untuk menambah fungsi autokenaikan pada lajur sedia ada yang sudah kunci utama jadual, anda boleh menggunakan kaedah yang berbeza bergantung pada versi Oracle anda menggunakan.

Untuk Oracle 11g dan Sebelumnya

  • Buat urutan untuk menambah lajur melalui pencetus.
CREATE SEQUENCE t_seq
  START WITH 150111111
  INCREMENT BY 1;

CREATE OR REPLACE TRIGGER t_trg
  BEFORE INSERT ON t
  FOR EACH ROW
  WHEN (new.id IS NULL)
  BEGIN
    SELECT t_seq.NEXTVAL
    INTO   :new.id
    FROM   dual;
  END;
Salin selepas log masuk

Untuk Oracle 12c dan Nanti

  • Gunakan ciri lajur Identiti.
CREATE TABLE t
  (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
  );
Salin selepas log masuk

Memasukkan Data

Setelah autokenaikan fungsi dikonfigurasikan, anda boleh memasukkan data ke dalam jadual sebagai biasa.

Contoh

Pertimbangkan jadual bernama t dengan lajur bernama ID sebagai kunci utama dan anda mahu mengkonfigurasinya untuk kenaikan automatik bermula dari 150111111.

Menggunakan kaedah jujukan dalam Oracle 11g:

INSERT INTO t(text) VALUES('auto-increment test 1');
Salin selepas log masuk

Menggunakan kaedah lajur Identiti dalam Oracle 12c:

INSERT INTO t(text) VALUES('This table has an identity column');
Salin selepas log masuk

Nota:

  • Jujukan yang dibuat untuk penambahan automatik kunci utama dinamakan ISEQ$$, yang boleh disahkan menggunakan Paparan USER_SEQUENCS.
  • Paparan ALL_TAB_IDENTITY_COLS memberikan maklumat tentang lajur identiti dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Auto-Kenaikan pada Lajur Utama Sedia Ada dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan