Подтвердить что ты не робот

Является ли временная таблица MySQL общим ресурсом?

У меня есть хранимая процедура MySQL, в которой используется временная таблица. Предположим, что мое имя таблицы - "temp", и я использую его для хранения некоторых средних данных. Он будет создан в начале процедуры и упадет в конце.

CREATE PROCEDURE p()
BEGIN

CREATE TEMPORARY TABLE \`temp\`(...);

INSERT INTO \`temp\` VALUES(...);

DROP TEMPORARY TABLE \`temp\`;

END;

Проблема заключается в том, что эта хранимая процедура может использоваться разными пользователями одновременно, поэтому я хочу знать, может ли это вызвать какие-либо проблемы (т.е. любой конфликт во вставленных данных в таблице temp). Другим словом является временная таблица общего ресурса в разных вызовах одного и того же SP?

4b9b3361

Ответ 1

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

Ответ 2

Временная таблица видна только для текущей сессии.

Итак, если у вас несколько одновременных сеансов - каждый будет иметь свою собственную независимую временную таблицу с тем же именем.

Документация: http://dev.mysql.com/doc/refman/5.1/en/create-table.html, ctrl + f для "Вы можете использовать ВРЕМЕННОЕ"