2012-05-24 3 views
1

Если два пользователя одновременно создают две таблицы TEMPORARY в моей базе данных mysql с использованием PHP-скрипта, будет ли он создавать две разные таблицы? Могут ли эти пользователи использовать свою таблицу без каких-либо проблем и удастся ли их автоматически удалить?ВРЕМЕННАЯ таблица в Mysql

спасибо :)

CREATE TEMPORARY TABLE TempTable (ID int, Name char(100)) TYPE=HEAP; 
INSERT INTO TempTable VALUES(1, "Foo bar"); 
SELECT * FROM TempTable; 
DROP TABLE TempTable; 

ответ

2

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

+0

, но как это работает, если два пользователя одновременно создают две таблицы TEMPORARY, используя одно и то же имя таблицы? Спасибо :) –

+0

Temp. таблицы - объекты с областью сеанса. Вы можете создать несколько таблиц с тем же именем, используя разные соединения. – Devart

1

Вы можете использовать [IF NOT EXISTS] в этом запросе ... reference

+0

поэтому, если я использую '[IF NOT EXISTS]', а db уже имеет то же имя таблицы, не создаст ли таблица, заменив таблицу имя с чем-то? thanks :) –

+0

Я просто нашел эту информацию на этом веб-сайте http://zez.org/article/articleview/54/, что «на загруженных сайтах не будет проблем с использованием одного и того же имени таблицы, так как это уникально для каждого соединения». Не могли бы вы объяснить мне, что эта строка на самом деле говорит? –

3

Как указано в the manual:

TEMPORARY таблица видна только для текущего соединения, и сбрасывается автоматически, когда соединение закрывается. Это означает, что два разных соединения могут использовать одно и то же имя временной таблицы без конфликта друг с другом или с существующей таблицей не TEMPORARY с тем же именем. (Существующая таблица скрыта до тех пор, пока временная таблица не будет удалена.)

+0

Спасибо. Очень ясный ответ :) –

Смежные вопросы