MariaDB - Sekwencje

W wersji 10.0.3 MariaDB wprowadziła mechanizm magazynowania znany jako sekwencja. Jego ad hoc generuje sekwencję liczb całkowitych dla operacji, a następnie kończy działanie. Sekwencja zawiera dodatnie liczby całkowite w kolejności malejącej lub rosnącej i używa wartości początkowej, końcowej i przyrostu.

Nie pozwala na użycie w wielu zapytaniach, tylko w swoim pierwotnym zapytaniu ze względu na jego wirtualną (nie zapisywaną na dysku) naturę. Jednak tabele sekwencji można konwertować na standardowe tabele za pomocą polecenia ALTER. Jeśli przekonwertowana tabela zostanie usunięta, tabela sekwencji nadal istnieje. Sekwencje nie mogą również tworzyć liczb ujemnych ani obracać się na minimum / maksimum.

Instalowanie mechanizmu sekwencyjnego

Korzystanie z sekwencji wymaga zainstalowania silnika sekwencji, który MariaDB dystrybuuje jako wtyczkę, a nie plik binarny. Zainstaluj go za pomocą następującego polecenia -

INSTALL SONAME "ha_sequence";

Po instalacji sprawdź to -

SHOW ENGINES\G

Należy pamiętać, że po zainstalowaniu silnika nie można utworzyć standardowej tabeli o nazwie używającej składni sekwencji, ale można utworzyć tabelę tymczasową z nazwą składni sekwencji.

Tworzenie sekwencji

Istnieją dwie metody tworzenia sekwencji -

  • Utwórz tabelę i użyj atrybutu AUTO_INCREMENT, aby zdefiniować kolumnę jako automatyczną inkrementację.

  • Użyj istniejącej bazy danych i użyj zapytania SELECT sekwencji, aby utworzyć sekwencję. Zapytanie używa składni seq_ [FROM] _to_ [TO] lub seq_ [FROM] _to_ [TO] _step_STEP.

Najlepsze praktyki preferują użycie drugiej metody. Przejrzyj przykład tworzenia sekwencji podany poniżej -

SELECT * FROM seq_77_to_99;

Sekwencje mają wiele zastosowań -

  • Zlokalizuj brakujące wartości w kolumnie, aby chronić się przed powiązanymi problemami w operacjach -

SELECT myseq.seq FROM seq_22_to_28 myseq LEFT JOIN table1 t ON myseq.seq
   = x.y WHERE x.y IS NULL;
  • Skonstruuj kombinację wartości -

SELECT x1.seq, x2.seq FROM seq_5_to_9 x1 JOIN seq_5_to_9 x2 ORDER BY 5, 6;
  • Znajdź wielokrotności liczby -

SELECT seq FROM seq_3_to_100_step_4;
  • Skonstruuj sekwencję dat do użycia w aplikacjach, takich jak systemy rezerwacji.
  • Skonstruuj sekwencję czasową.