Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Meniru SEQUENCE yang aman untuk transaksi di MySQL

Jika peningkatan otomatis tidak cukup baik untuk kebutuhan Anda, Anda dapat membuat mekanisme urutan atomik dengan n memberi nama urutan seperti ini:

Buat tabel untuk menyimpan urutan Anda:

CREATE TABLE sequence (
  seq_name varchar(20) unique not null,
  seq_current unsigned int not null
);

Dengan asumsi Anda memiliki baris untuk 'foo' dalam tabel, Anda secara atom dapat mendapatkan id urutan berikutnya seperti ini:

UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;

Tidak diperlukan kunci. Kedua pernyataan harus dieksekusi dalam sesi yang sama, sehingga variabel lokal @next benar-benar didefinisikan saat pemilihan terjadi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Benar/Salah vs 0/1 di MySQL

  2. Apakah penyortiran InnoDB benar-benar lambat?

  3. Cara menggunakan 'memiliki' dengan paginate pada kolom hubungan di laravel 5

  4. kueri mysql untuk secara dinamis mengonversi data baris ke kolom

  5. Penanganan Kesalahan Prosedur Tersimpan MySQL