Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Kesalahan SQLPlus AUTO_INCREMENT

Banyak yang akan mengeluh tentang ini karena tidak menjadi fitur standar di Oracle, tetapi ketika semudah dua perintah lagi setelah perintah CREATE TABLE Anda, saya tidak dapat melihat alasan yang baik untuk menggunakan SQL mewah pada setiap sisipan. Pertama mari kita buat tabel sederhana untuk bermain dengan.

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

Sekarang kita akan menganggap kita ingin ID menjadi bidang kenaikan otomatis. Pertama kita membutuhkan urutan untuk mengambil nilai.

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

Sekarang kita dapat menggunakan urutan itu dalam pemicu BEFORE INSERT pada tabel.

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. Oracle SQL Syntax - Periksa beberapa kolom untuk IS NOT NULL

  2. Kesalahan Xmlparserv2 saat aplikasi digunakan di jboss, Menginstal modul Oracle ojdbc di JBoss untuk aplikasi web Java

  3. kumpulkan massal menggunakan untuk pembaruan

  4. mendapatkan kesalahan saat memasukkan beberapa baris di sql

  5. Perbaiki "Tidak dapat menginstal di Homebrew pada prosesor ARM di awalan default Intel (/ usr / lokal)!"