English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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

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

Временные таблицы MySQL добавлены в версии 3.23 MySQL, если ваша версия MySQL ниже 3.23, вы не сможете использовать временные таблицы MySQL. Однако сейчас редко используется такая низкая версия MySQL.

Временные таблицы MySQL видны только в текущем соединении, если вы создаете временные таблицы MySQL в скрипте PHP, то временная таблица автоматически уничтожается после выполнения скрипта.

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

Онлайн пример

Ниже приведен пример использования временных таблиц MySQL, следующий SQL-код можно использовать в функции mysql_query() скрипта PHP.

mysql> CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
;
Запрос ок, 0 строк изменены (0.00 сек)
mysql> INSERT INTO SalesSummary
    -> (product_name, total_sales, avg_unit_price, total_units_sold)
    -> VALUES
    -> ('cucumber', 100.25, 90, 2);
mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 строка в наборе (0.00 сек)

Когда вы используете SHOW TABLESКоманда для отображения списка таблиц, вы не увидите таблицы SalesSummary.

Если вы выйдете из текущего сеанса MySQL и затем используете SELECTКоманду для чтения данных из созданной временной таблицы, вы обнаружите, что таблицы в базе данных нет, потому что временная таблица была уничтожена при выходе.

удалить временные таблицы MySQL

По умолчанию, когда вы разрываете соединение с базой данных, временная таблица автоматически уничтожается. Конечно, вы также можете использовать DROP TABLE Команда для ręcznego usuwania временной таблицы.

Ниже приведен пример удаления временной таблицы вручную:

mysql> CREATE TEMPORARY TABLE SalesSummary (
    -> product_name VARCHAR(50) NOT NULL
    -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
    -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
    -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
;
Запрос ок, 0 строк изменены (0.00 сек)
mysql> INSERT INTO SalesSummary
    -> (product_name, total_sales, avg_unit_price, total_units_sold)
    -> VALUES
    -> ('cucumber', 100.25, 90, 2);
mysql> SELECT * FROM SalesSummary;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 строка в наборе (0.00 сек)
mysql> DROP TABLE SalesSummary;
mysql> SELECT * FROM SalesSummary;
ERROR 1146: Таблица 'w3codebox.SalesSummary' не существует