Mysql
 sql >> Database >  >> RDS >> Mysql

Prenotare ID mySQL con incremento automatico?

L'unico modo per generare un valore di incremento automatico è tentare l'inserimento. Ma puoi annullare la transazione e continuare a leggere l'ID generato. In MySQL 5.1 e versioni successive, il comportamento predefinito è che i valori di incremento automatico non vengono "restituiti" allo stack quando si esegue il rollback.

START TRANSACTION;
INSERT INTO mytable () VALUES ();
ROLLBACK;
SELECT LAST_INSERT_ID() INTO @my_ai_value;

Ora puoi essere sicuro che nessun'altra transazione tenterà di utilizzare quel valore, quindi puoi usarlo nei tuoi processi esterni e quindi inserire manualmente un valore che utilizzi quel valore id (quando inserisci un valore id specifico, MySQL non lo fa generare un nuovo valore).