Ist MySQL temporäre Tabelle eine freigegebene Ressource?
Ich habe eine MySQL gespeicherte Prozedur, die verwendet eine temporäre Tabelle. Davon ausgehen, dass meine Tabelle name 'temp' und ich benutze es zum speichern von einige Mitte-Daten. Es wird am Anfang der Prozedur, und fallen am Ende.
CREATE PROCEDURE p()
BEGIN
CREATE TEMPORARY TABLE \`temp\`(...);
INSERT INTO \`temp\` VALUES(...);
DROP TEMPORARY TABLE \`temp\`;
END;
Das problem ist, dass diese gespeicherte Prozedur kann verwendet werden, die von verschiedenen Benutzern gleichzeitig, so möchte ich wissen, ob dies kann zu Problemen (z.B. Konflikte in eingefügten Daten in temp-Tabelle). In anderen Worten ist die temp-Tabelle eine gemeinsame Ressource innerhalb verschiedener Aufrufe von der gleichen SP?
InformationsquelleAutor der Frage Ehsan Khodarahmi | 2011-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, eine temp-Tabelle ist beschränkt auf den Umfang Ihrer Datenbank-Verbindung. Sie können die Verwendung der temp-Tabelle in nachfolgenden aufrufen der Prozedur, während die gleiche Datenbank-Verbindung, aber andere verbindungen können nicht darauf zugreifen. Sie können erstellen Sie eine Tabelle mit dem gleichen Namen, aber jeder temp-Tabelle wird unabhängig sein. Temp-Tabellen Weg, wenn Sie in der Nähe Ihrer Verbindung.
InformationsquelleAutor der Antwort Bill Karwin
Temporäre Tabelle ist nur sichtbar für aktuellen Sitzung.
Also, wenn Sie mehrere simultaneuous Sitzungen - jede wird eine eigene, unabhängige temporäre Tabelle mit demselben Namen.
Dokumentation: http://dev.mysql.com/doc/refman/5.1/en/create-table.htmlStrg+f "können Sie das TEMPORÄRE"
InformationsquelleAutor der Antwort zerkms