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

CMS.BY

Введение

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

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

Создание временной таблицы

Пример создания пустой таблицы

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

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

CREATE TEMPORARY TABLE `tmp_table` LIKE `prods`

Пример клонирование таблицы

 CREATE TEMPORARY TABLE `tmp_table`
S ELECT *
FROM `prods`

Пример клонирование таблицы

CREATE TEMPORARY TABLE `tmp_table`
S ELECT *
FROM `prods`

Пример создания и наполнения из нескольких таблиц

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

Работа с временными таблицами

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

-- Добавление
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;
Редакция CMS.BY

Редакция CMS.BY

С нами Мир познавать проще и надёжнее

shape

У Вас остались вопросы? Обязательно обратитесь к нам
Мы проконсультируем Вас по любому вопросу в сфере IT

Оставить заявку