sql >> Databáze >  >> RDS >> Oracle

Chyba SQLPlus AUTO_INCREMENT

Mnozí budou namítat, že to není standardní funkce v Oracle, ale když je to tak snadné, jako dva další příkazy po příkazu CREATE TABLE, nevidím žádný dobrý důvod, proč používat efektní SQL na každé vložení. Nejprve vytvořte jednoduchou tabulku. hrát s.

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

Nyní budeme předpokládat, že chceme, aby ID bylo polem automatického přírůstku. Nejprve potřebujeme sekvenci, ze které budeme získávat hodnoty.

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

Nyní můžeme tuto sekvenci použít ve spouštěči BEFORE INSERT na stole.

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. PostgreSQL POPISUJTE TABULKU

  2. Když použiji metodu vytvoření Waterline, nevrací ID nového záznamu

  3. Vytvořit Image Trackback pro externího webového vydavatele, který bude odkazovat na můj web

  4. internacionalizovaný regulární výraz v postgresql