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

Qual è il modo migliore per implementare una tabella di coda di messaggistica in mysql

La tua coda potrebbe essere più concisa. Piuttosto che fare affidamento sul rollback della transazione, puoi farlo in un'unica istruzione atomica senza una transazione esplicita:

UPDATE jobs SET process_id = ? WHERE process_id IS NULL ORDER BY ID ASC LIMIT 1;

Quindi puoi tirare i lavori con (le parentesi [] significano opzionali, a seconda dei tuoi dettagli):

SELECT * FROM jobs WHERE process_id = ? [ORDER BY ID LIMIT 1];