Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Khóa chính Autoincrement trong cơ sở dữ liệu Oracle

Như Orbman nói, cách tiêu chuẩn để làm điều đó là với một trình tự. Điều mà hầu hết mọi người cũng làm là kết hợp điều này với một trình kích hoạt chèn. Vì vậy, khi một hàng được chèn mà không có ID, trình kích hoạt sẽ kích hoạt để điền ID cho bạn từ trình tự.

CREATE SEQUENCE SEQ_ROLLINGSTOCK_ID START WITH 1 INCREMENT BY 1 NOCYCLE;

CREATE OR REPLACE TRIGGER BI_ROLLINGSTOCK
BEFORE INSERT ON ROLLINGSTOCK
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
 WHEN (NEW.ID IS NULL)
BEGIN
  select SEQ_ROLLINGSTOCK_ID.NEXTVAL
   INTO :NEW.ID from dual;
END;

Đây là một trong số ít trường hợp hợp lý khi sử dụng trình kích hoạt trong Oracle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào tôi có thể xác định một kiểu trong oracle11g tham chiếu đến một tập hợp kiểu đó?

  2. Lỗi thời gian chạy không xác định trong khi thực thi tập lệnh vba

  3. Lấy tổng một số cột từ hai bảng

  4. Có thể xảy ra bế tắc khi cập nhật và xóa các hàng khác nhau trong bảng không?

  5. Kích thước bộ nhớ Oracle NUMBER (p)?