2012-05-24 4 views
1

Si deux utilisateurs créent simultanément deux tables TEMPORARY dans ma base de données mysql en utilisant un script PHP, va-t-il créer deux tables différentes? Ces utilisateurs peuvent-ils utiliser leur propre table sans problème et ces tables seront-elles automatiquement supprimées?Table TEMPORAIRE dans Mysql

merci :)

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

Répondre

2

tables temporaires sont créés dans une session en cours; Ainsi, deux utilisateurs peuvent créer deux temp. tables en même temps dans leurs discussions. Ces tables seront supprimées à la fermeture de la session.

+0

mais comment cela fonctionne-t-il si deux utilisateurs créent deux tables TEMPORAIRE en même temps en utilisant le même nom de table? Merci :) –

+0

Temp. les tables sont des objets de portée de session. Vous pouvez créer des tables avec le même nom en utilisant des connexions différentes. – Devart

1

Vous pouvez utiliser [IF NOT EXISTS] dans cette requête ... reference

+0

donc si j'utilise '[IF NOT EXISTS]' et que la base de données a déjà le même nom de table, ne créera-t-elle pas la table en remplaçant la table nom avec quelque chose? merci :) –

+0

Je viens de trouver cette information dans ce site Web http://zez.org/article/articleview/54/ que "les sites lourdement chargés n'auront pas de problème avec l'utilisation du même nom de table car il est unique par connexion." Pourriez-vous m'expliquer ce que dit cette phrase? –

3

Comme indiqué dans the manual:

Une table TEMPORARY est visible uniquement à la connexion en cours, et est automatiquement supprimée lorsque la connexion est fermée. Cela signifie que deux connexions différentes peuvent utiliser le même nom de table temporaire sans conflit entre elles ou avec une table non existante TEMPORARY du même nom. (La table existante est cachée jusqu'à ce que la table temporaire soit supprimée.)

+0

Merci. Réponse très claire :) –