sql >> Database teknologi >  >> RDS >> Oracle

Værdi fra sidst indsatte række i DB

Det du prøver at gøre er at drage fordel af RETURNING klausul. Lad os opsætte en eksempeltabel og en sekvens:

CREATE TABLE "TEST" 
( "ID" NUMBER NOT NULL ENABLE, 
 "NAME" VARCHAR2(100 CHAR) NOT NULL ENABLE, 
  CONSTRAINT "PK_TEST" PRIMARY KEY ("ID")
  );

CREATE SEQUENCE SEQ_TEST;

Nu skulle din Java-kode se sådan ud:

String insertSql = "BEGIN INSERT INTO TEST (ID, NAME) VALUES (SEQ_TEST.NEXTVAL(), ?) RETURNING ID INTO ?; END;";
java.sql.CallableStatement stmt = conn.prepareCall(insertSql);
stmt.setString(1, "John Smith");
stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
stmt.execute();
int id = stmt.getInt(2);


  1. Forhold til mange og få uden dette

  2. Gå gennem foruddefinerede værdier

  3. Oracle tidsstempel, maks. og minimale værdier

  4. Hvordan deaktiverer man MySQL root logins, når der ikke er angivet en adgangskode?