Учебники

MySQLi — временные таблицы

Временные таблицы могут быть очень полезны в некоторых случаях для хранения временных данных. Самая важная вещь, которая должна быть известна для временных таблиц, — то, что они будут удалены, когда текущий сеанс клиента завершается.

Как указывалось ранее, временные таблицы будут длиться только до тех пор, пока сеанс жив. Если вы запустите код в сценарии PHP, временная таблица будет автоматически уничтожена, когда сценарий завершит выполнение. Если вы подключены к серверу базы данных MySQL через клиентскую программу MySQLi, временная таблица будет существовать до тех пор, пока вы не закроете клиент или не уничтожите таблицу вручную.

пример

Вот пример, показывающий использование временной таблицы. Тот же код можно использовать в сценариях PHP с помощью функции mysqli_query () .

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
   -> ('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 row in set (0.00 sec)

Когда вы запускаете команду SHOW TABLES, ваша временная таблица не будет указана в списке. Теперь, если вы выйдете из сеанса MySQLi, а затем введете команду SELECT, в базе данных не будет доступных данных. Даже ваша временная таблица также не будет существовать.

Удаление временных таблиц

По умолчанию все временные таблицы удаляются MySQLi, когда соединение с вашей базой данных прерывается. Тем не менее, если вы хотите удалить их между ними, то вы делаете это с помощью команды DROP TABLE.

Ниже приведен пример удаления временной таблицы: