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
Linda Hamiltonasal
2025-01-03 05:35:391027semak imbas

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;

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)
  );

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');

Menggunakan kaedah lajur Identiti dalam Oracle 12c:

INSERT INTO t(text) VALUES('This table has an identity column');

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!

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