MariaDB - Urutan

Dalam versi 10.0.3, MariaDB memperkenalkan mesin penyimpanan yang dikenal sebagai sequence. Ad hocnya menghasilkan urutan integer untuk operasi, dan kemudian berhenti. Urutan berisi bilangan bulat positif dalam urutan turun atau naik, dan menggunakan nilai awal, akhir, dan kenaikan.

Itu tidak mengizinkan penggunaan dalam beberapa kueri, hanya dalam kueri aslinya karena sifatnya yang virtual (tidak ditulis ke disk). Namun, tabel urutan dapat diubah menjadi tabel standar melalui perintah ALTER. Jika tabel yang dikonversi dihapus, tabel urutan masih ada. Urutan juga tidak dapat menghasilkan angka negatif atau berputar di minimum / maksimum.

Memasang Mesin Urutan

Menggunakan urutan memerlukan penginstalan mesin urutan, yang didistribusikan MariaDB sebagai plugin, bukan biner. Instal dengan perintah berikut -

INSTALL SONAME "ha_sequence";

Setelah instalasi, verifikasi -

SHOW ENGINES\G

Ingatlah bahwa setelah penginstalan mesin, Anda tidak dapat membuat tabel standar dengan nama yang menggunakan sintaks urutan, tetapi Anda dapat membuat tabel sementara dengan nama sintaks-urutan.

Membuat Urutan

Ada dua metode pembuatan urutan -

  • Buat tabel dan gunakan atribut AUTO_INCREMENT untuk menentukan kolom sebagai penambahan otomatis.

  • Gunakan database yang ada dan gunakan kueri SELECT urutan untuk menghasilkan urutan. Kueri menggunakan sintaks seq_ [FROM] _to_ [TO] atau seq_ [FROM] _to_ [TO] _step_STEP.

Praktik terbaik lebih memilih penggunaan metode kedua. Tinjau contoh pembuatan urutan yang diberikan di bawah ini -

SELECT * FROM seq_77_to_99;

Urutan memiliki banyak kegunaan -

  • Temukan nilai yang hilang dalam kolom untuk melindungi dari masalah terkait dalam operasi -

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  • Bangun kombinasi nilai -

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  • Temukan kelipatan angka -

SELECT seq FROM seq_3_to_100_step_4;
  • Buat urutan tanggal untuk digunakan dalam aplikasi seperti sistem pemesanan.
  • Buat urutan waktu.