MariaDB - Stoły tymczasowe

Niektóre operacje mogą korzystać z tabel tymczasowych ze względu na szybkość lub dane jednorazowego użytku. Żywotność tabeli tymczasowej kończy się wraz z zakończeniem sesji, niezależnie od tego, czy używasz jej z wiersza poleceń, za pomocą skryptu PHP, czy za pośrednictwem programu klienckiego. Nie pojawia się też w systemie w typowy sposób. Polecenie SHOW TABLES nie ujawnia listy zawierającej tabele tymczasowe.

Utwórz tabelę tymczasową

Słowo kluczowe TEMPORARY w instrukcji CREATE TABLE powoduje utworzenie tabeli tymczasowej. Przejrzyj przykład podany poniżej -

mysql>CREATE TEMPORARY TABLE order (
   item_name VARCHAR(50) NOT NULL
   , price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   , quantity INT UNSIGNED NOT NULL DEFAULT 0
);

Tworząc tabelę tymczasową, możesz sklonować istniejące tabele, czyli wszystkie ich ogólne cechy, za pomocą klauzuli LIKE. Instrukcja CREATE TABLE używana do tworzenia tabeli tymczasowej nie zatwierdzi transakcji w wyniku użycia słowa kluczowego TEMPORARY.

Chociaż tabele tymczasowe różnią się od nietymczasowych i opadają pod koniec sesji, mogą mieć pewne konflikty -

  • Czasami powodują konflikty z tymczasowymi tabelami duchów z wygasłych sesji.

  • Czasami powodują konflikty z nazwami cieni nie tymczasowych tabel.

Note - Tabele tymczasowe mogą mieć taką samą nazwę jak istniejąca tabela nietymczasowa, ponieważ MariaDB postrzega ją jako odniesienie do różnicy.

Administracja

MariaDB wymaga nadania użytkownikom uprawnień do tworzenia tabel tymczasowych. Użyj instrukcji GRANT, aby nadać to uprawnienie użytkownikom niebędącym administratorami.

GRANT CREATE TEMPORARY TABLES ON orders TO 'machine122'@'localhost';

Upuść tabelę tymczasową

Chociaż tabele tymczasowe są zasadniczo usuwane pod koniec sesji, masz możliwość ich usunięcia. Usuwanie tabeli tymczasowej wymaga użycia słowa kluczowego TEMPORARY, a najlepsze praktyki sugerują usuwanie tabel tymczasowych przed wszystkimi nietymczasowymi.

mysql> DROP TABLE order;