Некоторые RDBMS поддерживают механизм временных таблиц. Они позволяют нам хранить и обрабатывать промежуточные результаты используя все возможности SQL сервера.
Временные таблицы могут быть крайне полезными, когда нам необходимо хранить различные временные данные (например, список товаров в чеке, до момента осуществления оплаты). Главное преимущество таких таблиц заключается в том, что они будет удалены сразу же после завершения клиентской сессии.
Пример:
Ниже приведён пример использования временной таблицы:
mysql> CREATE TEMPORARY TABLE SALES_TICKET_SUMMARY (
PRODUCT_NAME VARCHAR (100) NOT NULL,
PRODUCT_PRICE INT NOT NULL,
PRODUCT_AMOUNT INT NOT NULL DEFAULT 1
);
Теперь добавим данные в нашу таблицу, используя следующий запрос:
mysql> INSERT INTO SALES_TICKET_SUMMARY VALUES ('Milk', 10, 2);
На данный момент, наша таблица SALES_TICKET_SUMMARY содержит следующие записи:
+--------------+---------------+----------------+
| PRODUCT_NAME | PRODUCT_PRICE | PRODUCT_AMOUNT |
+--------------+---------------+----------------+
| Milk | 10 | 2 |
+--------------+---------------+----------------+
По умолчанию, после того как наша сессия будет закончена, данная таблица будет удалена.
Но, если мы хотим удалить временную таблицу до этого момента, то нам необходимо использовать команду DROP TABLE:
mysql> DROP TABLE SALES_TICKET_SUMMARY;
Попытка обратиться к данной таблице после этого приведёт к ошибке 1146:
mysql> SELECT * FROM SALES_TICKET_SUMMARY;
ERROR 1146 (42S02): Table 'sql_tutorial.SALES_TICKET_SUMMARY' doesn't exist
На этом мы заканчиваем изучение временных таблиц.
В следующей статье мы рассмотрим способ создания копии определённой таблицы.