Временные таблицы в MySQL

Временные таблицы используются для хранения промежуточных данных при сложных выборках из БД, например при большом количестве JOIN и UNION запросов.

Созданные таблицы доступны до закрытия соединения т.е. до завершения скрипта PHP или отключения MySQL клиента.

1

Создание пустой таблицы:

CREATE TEMPORARY TABLE `tmp_table` (
	`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
	`name` varchar(255) NOT NULL,
	`price` decimal(11,2) unsigned NOT NULL DEFAULT '0.00',
	`sef` varchar(255) NOT NULL,
	`text` text NOT NULL,
	`approve` tinyint(1) NOT NULL DEFAULT '1',
	`date_add` int(11) unsigned NOT NULL DEFAULT '0',
	PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
SQL

Создание временной таблицы из структуры другой:

CREATE TEMPORARY TABLE `tmp_table` LIKE `prods`
SQL

Клонирование таблицы:

CREATE TEMPORARY TABLE `tmp_table` 
	SELECT 
		*
	FROM 
		`prods`
SQL

Создание и наполнение из нескольких таблиц:

CREATE TEMPORARY TABLE `tmp_table` 
	SELECT 
		`prods`.`name`,
		`urls`.`sef`
	FROM 
		`prods`
	LEFT JOIN 
		`urls`
	ON
		`prods`.`id` = `urls`.`prods_id`
	WHERE
		`prods`.`approve` = 1
SQL
2

После создания таблицы, операции с ней, проводятся как с обычными таблицами.

-- Добавление
INSERT INTO `tmp_table` SET `name` = 'Запись 1', `approve` = 1, `date_add` = UNIX_TIMESTAMP();

-- Изменение
UPDATE `tmp_table` SET `approve` = 0 WHERE `id` = 1;

-- Удаление
DELETE FROM `tmp_table` WHERE `approve` = 0;

-- Выборка
SELECT * FROM `tmp_table` WHERE `approve` = 1;
SQL
02.11.2018, обновлено 09.10.2019
58992

Комментарии

, чтобы добавить комментарий.

Другие публикации

Счетчик просмотров страниц с графиком
Для примера возьмем статейный сайт, на нём нужно сделать счетчик просмотров статей, с выводом результатов за день,...
22416
+24
Оплата заказов на сайте через Робокассу
В данной статье описан процесс оплаты заказа на сайте с помощью Робокассы. Перед тем, как преступить работе над...
26953
+10
Поиск ближайших объектов в БД по координатам
Рассмотрим пример как найти в базе данных соседние объекты по координатам и вывести их на карте Яндекс.
12172
+2
Как вывести метки на Яндекс.Картах из MySQL+PHP
В статье рассмотрены примеры как вывести метку на карту из БД и вывод других объектов, которые находятся рядом.
24067
+12
База городов, регионов и федеральных округов РФ в MySQL
База состоит из трех связанных таблиц, версия от 2016 года.
41415
+4
Округа и районы Москвы в MySQL
Две связанные MYSQL таблицы с округами и районами Москвы.
13264
+4