English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Временные таблицы 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Команду для чтения данных из созданной временной таблицы, вы обнаружите, что таблицы в базе данных нет, потому что временная таблица была уничтожена при выходе.
По умолчанию, когда вы разрываете соединение с базой данных, временная таблица автоматически уничтожается. Конечно, вы также можете использовать 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' не существует