sql >> Database >  >> RDS >> Mysql

Wat is de standaardmanier om de laatste invoeg-ID te krijgen?

Zie dit antwoord Ingevoegde rij-ID ophalen in SQL

Kortom, er is geen cross-database manier om dit te doen, behalve MAX(ID) - maar dat is geen gegarandeerd resultaat en heeft veel valkuilen, bijv.

  • andere invoegingen kunnen tussen de laatste invoeging en de maximale zoekopdracht komen
  • kan niet worden gebruikt met hoge transactietabellen (max zal een leesvergrendeling geven, rdbms-specifieke methoden lezen niet uit een tabel)

De ANSI-standaard die betrekking heeft op identity/autonumber/auto_increment/sequences verscheen voor het eerst in SQL:2003 in afwachting van implementatie door alle grote RDBMS. Het zal hoogstwaarschijnlijk lijken op Oracle/PostgreSQL-reeksen.

Een andere wijziging in SQL:2003 is de OUTPUT USING CLAUSE maar daar is weinig informatie over. Sybase en SQL Server hebben er verschillende dingen mee gedaan, dus het is nog onduidelijk hoe het zal uitpakken. SQL Server implementeert het als

INSERT INTO TBL(..)
OUTPUT inserted.identity_col
INTO @sometablevar
VALUES(..)


  1. JSON_UNQUOTE() – Verwijder aanhalingstekens uit een JSON-document in MySQL

  2. Twitter-wedstrijd ~ tweets opslaan (PHP &MySQL)

  3. PostgreSQL - Controleer of de externe sleutel bestaat bij het uitvoeren van een SELECT

  4. geselecteerde gebruikers hebben meer dan één afzonderlijke records in mysql