А ну, познания человеческие, поглядим, кто кого! (Ж.-П. Сартр).

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

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
23 апреля 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.

Просмотров: 159

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

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

    Добавить комментарий

    Войти с помощью: 

    Ваш e-mail не будет опубликован. Обязательные поля помечены *

    Сообщить об опечатке

    Текст, который будет отправлен нашим редакторам:

    Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

    badge
    Обратный звонок 1
    Отправить
    galka

    Спасибо! Ваша заявка принята

    close
    galka

    Спасибо! Ваша заявка принята

    close