MariaDB - Diziler

10.0.3 sürümünde MariaDB, sıra olarak bilinen bir depolama motorunu tanıttı. Ad hoc, işlemler için bir tamsayı dizisi oluşturur ve sonra sona erer. Dizi, azalan veya artan sırada pozitif tamsayılar içerir ve bir başlangıç, bitiş ve artış değeri kullanır.

Sanal (diske yazılmamış) niteliği nedeniyle birden fazla sorgularda kullanılmasına izin vermez, yalnızca orijinal sorgusunda kullanılır. Ancak, sıra tabloları bir ALTER komutu ile standart tablolara dönüştürülebilir. Dönüştürülmüş bir tablo silinirse, sıra tablosu hala mevcuttur. Diziler ayrıca negatif sayılar üretemez veya minimum / maksimumda döndüremez.

Sıra Motorunu Kurma

Sıraları kullanmak, MariaDB'nin ikili yerine bir eklenti olarak dağıttığı sıra motorunun kurulmasını gerektirir. Aşağıdaki komutla kurun -

INSTALL SONAME "ha_sequence";

Kurulumdan sonra doğrulayın -

SHOW ENGINES\G

Motor kurulumundan sonra, sıra sözdizimi kullanan bir adla standart bir tablo oluşturamayacağınızı, ancak bir dizi sözdizimi adıyla geçici bir tablo oluşturabileceğinizi unutmayın.

Sıra Oluşturuluyor

İki sıra oluşturma yöntemi vardır -

  • Bir tablo oluşturun ve bir sütunu otomatik artış olarak tanımlamak için AUTO_INCREMENT özelliğini kullanın.

  • Var olan bir veritabanını kullanın ve bir sıra oluşturmak için sıralı bir SELECT sorgusu kullanın. Sorgu seq_ [FROM] _to_ [TO] veya seq_ [FROM] _to_ [TO] _step_STEP sözdizimini kullanır.

En iyi uygulamalar ikinci yöntemin kullanılmasını tercih eder. Aşağıda verilen bir dizi oluşturma örneğini inceleyin -

SELECT * FROM seq_77_to_99;

Dizilerin birçok kullanımı vardır -

  • İşlemlerdeki ilgili sorunlara karşı koruma sağlamak için bir sütundaki eksik değerleri bulun -

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  • Değerlerin bir kombinasyonunu oluşturun -

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  • Bir sayının katlarını bulun -

SELECT seq FROM seq_3_to_100_step_4;
  • Rezervasyon sistemleri gibi uygulamalarda kullanılmak üzere bir tarih dizisi oluşturun.
  • Bir zaman dizisi oluşturun.