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

SQLPlus AUTO_INCREMENT Lỗi

Nhiều người sẽ hiểu rằng đây không phải là một tính năng tiêu chuẩn trong Oracle, nhưng khi nó dễ dàng như hai lệnh nữa sau lệnh CREATE TABLE của bạn, tôi không thể thấy bất kỳ lý do chính đáng nào để sử dụng SQL ưa thích trên mỗi lần chèn. Đầu tiên hãy tạo một bảng đơn giản để chơi với.

SQL> CREATE TABLE test
(id NUMBER PRIMARY KEY,
name VARCHAR2(30));
Table created.

Bây giờ, chúng tôi sẽ giả định rằng chúng tôi muốn ID là một trường tăng tự động. Đầu tiên, chúng ta cần một chuỗi để lấy các giá trị từ đó.

SQL> CREATE SEQUENCE test_sequence
START WITH 1
INCREMENT BY 1;
Sequence created.

Bây giờ chúng ta có thể sử dụng trình tự đó trong trình kích hoạt CHÈN TRƯỚC trên bảng.

CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT
ON test
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT test_sequence.nextval INTO :NEW.ID FROM dual;
END;
/


SQL> INSERT INTO test (name) VALUES ('Jon');
1 row created.

SQL> INSERT INTO test (name) VALUES (’Bork’);
1 row created.

SQL> INSERT INTO test (name) VALUES (’Matt’);
1 row created.

SQL> SELECT * FROM test;

ID NAME
———- ——————————
1 Jon
2 Bork
3 Matt


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn Thu thập hàng loạt vào Ví dụ Oracle

  2. Gọi thủ tục Java được lưu trữ trong chương trình java

  3. XML Oracle:Trích xuất nhiều nút con

  4. tạo gói oracle đã gặp PLS-00103:Gặp phải biểu tượng CREATE

  5. Khi cố gắng tải một clob vào một bảng Oracle, tải quá nhiều bản ghi