MariaDB - Временные таблицы

Некоторые операции могут выиграть от временных таблиц из-за скорости или одноразовых данных. Срок действия временной таблицы заканчивается по завершении сеанса, независимо от того, используете ли вы их из командной строки, с помощью сценария PHP или через клиентскую программу. Он также не появляется в системе обычным образом. Команда SHOW TABLES не отображает список, содержащий временные таблицы.

Создать временную таблицу

Ключевое слово TEMPORARY в операторе CREATE TABLE порождает временную таблицу. Просмотрите пример, приведенный ниже -

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
);

При создании временной таблицы вы можете клонировать существующие таблицы, то есть все их общие характеристики, с помощью предложения LIKE. Оператор CREATE TABLE, используемый для создания временной таблицы, не будет фиксировать транзакции в результате ключевого слова TEMPORARY.

Хотя временные таблицы отличаются от временных и удаляются в конце сеанса, у них могут быть определенные конфликты:

  • Иногда они конфликтуют с временными таблицами-призраками из просроченных сеансов.

  • Иногда они конфликтуют с теневыми именами невременных таблиц.

Note - Временные таблицы могут иметь то же имя, что и существующая невременная таблица, потому что MariaDB рассматривает ее как ссылку на разницу.

Администрация

MariaDB требует предоставления пользователям привилегий для создания временных таблиц. Используйте оператор GRANT, чтобы предоставить эту привилегию пользователям без прав администратора.

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

Удалить временную таблицу

Хотя временные таблицы по существу удаляются в конце сеанса, у вас есть возможность удалить их. Удаление временной таблицы требует использования ключевого слова TEMPORARY, а передовой опыт предлагает удалять временные таблицы перед любыми невременными.

mysql> DROP TABLE order;