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

Načíst naposledy vloženou IDENTITY Oracle

Studna. Oracle používá sekvence a výchozí hodnoty pro funkci IDENTITY v 12c. Proto potřebujete vědět o sekvencích pro vaši otázku.

Nejprve vytvořte testovací identifikační tabulku.

CREATE TABLE IDENTITY_TEST_TABLE
(
  ID NUMBER GENERATED ALWAYS AS IDENTITY 
, NAME VARCHAR2(30 BYTE) 
);

Nejprve najděte název vaší sekvence, který je vytvořen s tímto sloupcem identity. Tento název sekvence je výchozí hodnotou ve vaší tabulce.

Select TABLE_NAME, COLUMN_NAME, DATA_DEFAULT from USER_TAB_COLUMNS
where TABLE_NAME = 'IDENTITY_TEST_TABLE';

pro mě je tato hodnota "ISEQ $ $ _193606"

vložte nějaké hodnoty.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('aydın');

pak vložte hodnotu a najděte identitu.

INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla');
 SELECT "ISEQ$$_193606".currval from dual; 

měli byste vidět hodnotu své identity. Pokud chcete dělat v jednom bloku, použijte

declare
   s2 number;
 begin
   INSERT INTO IDENTITY_TEST_TABLE (name) VALUES ('atilla') returning ID into s2;
   dbms_output.put_line(s2);
 end;

Last ID je název sloupce mé identity.



  1. Jak by filtrované indexy mohly být výkonnější funkcí

  2. CTE Recursion pro získání stromové hierarchie

  3. mysql, iterujte názvy sloupců

  4. Potenciální vylepšení ASPState