Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв е стандартният начин за получаване на последния идентификатор на вмъкване?

Вижте този отговор Извличане на ID на вмъкнатия ред в SQL

Накратко, няма начин за кръстосана база данни за това, освен MAX(ID) - но това не е гарантиран резултат и има много много клопки, напр.

  • други вмъквания могат да бъдат между последното вмъкване и максималната заявка
  • не може да се използва с таблици с високи транзакции (max ще издаде заключване за четене, специфичните за rdbms методи не четат от нито една таблица)

Стандартът ANSI, който се отнася до identity/autonumber/auto_increment/sequences, се появява за първи път в SQL:2003 очаква внедряване от всички основни RDBMS. Най-вероятно ще прилича на последователности на Oracle/PostgreSQL.

Друга промяна в SQL:2003 е OUTPUT USING CLAUSE но има много малко информация за него. Sybase и SQL Server са направили различни неща с него, така че все още не е ясно как ще се развие. SQL Server го прилага като

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да накарам Django да работи с MySQL в XAMPP?

  2. Laravel - Групово вмъкване на дублиран ключ, актуализиране на голям набор от данни

  3. Изчислете процентил в MySQL въз основа на общите суми

  4. Как да сумирате низ, разделен със запетая в SQL?

  5. Безопасно ли е да съхранявате дати като низ в mysql?