Есть СУБД, которые поддерживают временные таблицы. Временные таблицы являются особенностью, которая позволяет хранить и обрабатывать промежуточные результаты, используя один и тот же выбор, обновление, к возможности присоединиться, которые можно использовать с обычными таблицами SQL Server.
Временные таблицы могут быть очень полезны в некоторых случаях, чтобы сохранить временные данные. Самое главное, что должно быть известно для временных таблиц, является то, что они будут удалены, когда текущий сеанс клиента прекращается.
Временные таблицы доступны начиная с версии MySQL 3.23. Если вы используете более старую версию MySQL 3.23, вы не можете использовать временные таблицы, но вы можете использовать таблицы кучи.
Как отмечалось ранее, временные таблицы будут живы до тех пор, пока сессия жива. Если запустить код в PHP скрипте, временная таблица будет уничтожена автоматически, когда скрипт заканчивает выполнение. Если вы подключены к серверу баз данных MySQL с помощью клиентской программы MySQL, то временная таблица будет существовать до тех пор, пока не будет закрыт клиент или вручную уничтожить таблицу.
Ниже приведен пример, показывающий вам использование временной таблицы.
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 ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO SALESSUMMARY -> (product_name, total_sales, avg_unit_price, total_units_sold) -> VALUES -> ('Чебурашка', 250.00, 213.50, 15); mysql> SELECT * FROM SALESSUMMARY; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | Чебурашка | 250.00 | 213.50 | 15 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec)
При выдаче команды SHOW TABLES, ваша временная таблица не будет указана в списке. Теперь, если вы выйдите из сессии MySQL, а затем выполните команду SELECT, вы не найдете никаких данных в базе данных. Ваша временная таблица не будет существовать.
По умолчанию все временные таблицы удаляются с помощью MySQL , когда подключение к базе данных получает прекращено. Тем не менее, если вы хотите удалить их между ними, то вы можете сделать это путем выполнения команды DROP TABLE.
Ниже приведен пример того, как удалить временную таблицу.
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 ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO SALESSUMMARY -> (product_name, total_sales, avg_unit_price, total_units_sold) -> VALUES -> ('Чебурашка', 250.00, 213.50, 15); mysql> SELECT * FROM SALESSUMMARY; +--------------+-------------+----------------+------------------+ | product_name | total_sales | avg_unit_price | total_units_sold | +--------------+-------------+----------------+------------------+ | Чебурашка | 250.00 | 213.50 | 15 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec) mysql> DROP TABLE SALESSUMMARY; mysql> SELECT * FROM SALESSUMMARY; ERROR 1146: Table 'TUTORIALS.SALESSUMMARY' doesn't exist