Mysql create temp table

Mysql create temp table

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

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

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

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

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

чтобы создать временную таблицу, копию уже существующей, используйте выражение (несколько примеров) =

где
new_t = это имя новой таблицы
а
old_t = это имя старой (уже существующей в вашей базе данных)таблицы

База данных MySQL допускает создание временных таблиц.

Поскольку mysql не поддерживает вложенные SELECT, можно разбить один сложный SELECT на несколько простых с использованием временных таблиц.

В данном примере мы будем использовать временную таблицу для хранения IP-адресов посетителей из четырех полей:

id_ip — первичный ключ таблицы;
ip — IP-адрес посетителя;
id_user— вторичный ключ, устанавливающий дополнительную связь с таблицей посетителей users. В таблице users этот ключ выступает в качестве первичного;
puttime — время посещения.
Допустим, нам надо выбрать последний IP-адрес для каждого посетителя и время, когда он с него зашел. Можно поступить в два этапа. Сначала выбрать вторичные ключи пользователей id_user и соответствующее им время последнего посещения, а затем в цикле выбрать соответствующие им IP-адреса.

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

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

Как видно из листинга, выполнение второго SQL-запроса вынесено из тела
цикла. После выполнения скрипта таблица temp_table, созданная в памяти, будет
уничтожена автоматически.

Читайте другие интересные статьи

Понравилась статья, расскажи о ней друзьям, нажми кнопку!

Читайте также:  216 0674026 На 216 0752001

Is it possible to create a temporary (session only) table from a select statement without using a create table statement and specifying each column type? I know derived tables are capable of this, but those are super-temporary (statement-only) and I want to re-use.

It would save time if I did not have to write up a create table command and keep the column list and type list matched up.

6 Answers 6

You can use the TEMPORARY keyword when creating a table. A TEMPORARY table is visible only to the current session, and is dropped automatically when the session is closed. This means that two different sessions can use the same temporary table name without conflicting with each other or with an existing non-TEMPORARY table of the same name. (The existing table is hidden until the temporary table is dropped.) To create temporary tables, you must have the CREATE TEMPORARY TABLES privilege.

Ссылка на основную публикацию
M3u8 чем открыть на андроид
вкл. 13 Август 2018 . Опубликовано в Менеджеры закачек M3U8 Loader - Программа скачает видео в несколько потоков. Для того...
Jquery как удалить элемент
С jQuery легко удалить существующие элементы HTML. Удалите Элементы/Контент Чтобы удалить элементы и контент, существует два основных метода jQuery: remove()...
Jquery последний элемент массива
Предположим, что у вас есть массив, подобный этому: Как получить последний элемент в массиве? В данном случае массив состоит из...
M2040dn печатает белые листы
Сделаем качество печати Kyocera как по заводу В блоге я уже неоднократно говорил о своей любви к печатным аппаратам японской...
Adblock detector