Поиск по сайту:
Жена, не ведущая мужа вперед, непременно толкает его назад (Д. Милль).

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
23.04.2017
SQL - Временные таблицы

Какие они, временные таблицы?

Есть СУБД, которые поддерживают временные таблицы. Временные таблицы являются особенностью, которая позволяет хранить и обрабатывать промежуточные результаты, используя один и тот же выбор, обновление, к возможности присоединиться, которые можно использовать с обычными таблицами 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

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Спасибо!

Теперь редакторы в курсе.