sql >> Databasteknik >  >> RDS >> Oracle

Hämta Oracle senast infogade IDENTITY

Väl. Oracle använder sekvenser och standardvärden för IDENTITY-funktionalitet i 12c. Därför behöver du känna till sekvenser för din fråga.

Skapa först en testidentitetstabell.

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

Låt oss först hitta ditt sekvensnamn som skapas med denna identitetskolumn. Detta sekvensnamn är ett standardvärde i din tabell.

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

för mig är detta värde "ISEQ$$_193606"

infoga några värden.

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

infoga sedan värde och hitta identitet.

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

du borde se ditt identitetsvärde. Om du vill göra i ett block använd

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

Senaste ID är mitt identitetskolumnnamn.



  1. Hur man inaktiverar Change Data Capture (CDC) på en databas i SQL Server - SQL Server Tutorial

  2. PostgreSQL-frågan körs snabbare med indexskanning, men motorn väljer hash join

  3. Ändra ett Enum-fält med Alembic

  4. Oracle-fråga för att hämta kolumnnamn