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

(mysql, php) Как да получа стойност на полето auto_increment преди вмъкване на данни?

Стойността за автоматично нарастване се генерира от самата база данни, когато вмъкването е извършено; което означава, че не можете да го получите, преди да извършите действителната заявка за вмъкване.

Решението, което предложихте, не е това, което често се използва - което би било:

  • вмъкнете някои полупразни данни
  • вземете генерираната стойност за автоматично увеличение
  • направете вашите изчисления, като използвате тази стойност за автоматично увеличение
  • актуализирайте реда, за да поставите новите / пълните данни на място - като използвате автоматичното увеличение, генерирано по-рано в where клауза на update заявка, за да определите кой ред се актуализира.

Разбира се, като предпазна мярка за сигурност, всички тези операции трябва да се извършват в транзакция (за да се осигури поведение „всичко или нищо“)


Като псевдокод :

begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - Как да търся точно съвпадение на думи с LIKE?

  2. Опитвам се да получа свойство на необект - CodeIgniter

  3. MySQL еквивалент на функцията DECODE в Oracle

  4. Как да импортирате и експортирате база данни чрез SSH

  5. Настройки на множество центрове за данни с помощта на Galera Cluster за MySQL или MariaDB