Ich habe dieses seltsame Problem heute bekommen, als ich einen temporären Tisch fallen ließ. Ich habe die temporäre Tabelle gelöscht und die Tabelle nur zur Überprüfung heruntergefahren. Aber der Tisch wurde nicht fallen gelassen. Nach einigem Suchen fand ich Folgendes:
Mit MySQL kann eine temporäre Tabelle mit demselben Namen wie eine permanente Tabelle erstellt werden. Also wurde die temporäre Tabelle gelöscht und nicht die permanente Tabelle. Ich war wirklich verwirrt mit dem Tisch, an dem ich arbeite.
MySQL-Version: 5.1.36-Enterprise-GPL-Pro-Log
Folgendes hatte ich getestet:
mysql> create table test(id int);
Query OK, 0 rows affected (0.00 sec)
mysql> desc test;
| Field | Type | Null | Key | Default | Extra |
--------------------------------------------------
id int(11) YES NULL
mysql> create temporary table test(id int);
Query OK, 0 rows affected (0.00 sec)
mysql> desc test;
| Field | Type | Null | Key | Default | Extra |
--------------------------------------------------
id int(11) YES NULL
mysql> drop table test;
Query OK, 0 rows affected (0.00 sec)
mysql> desc test;
| Field | Type | Null | Key | Default | Extra |
--------------------------------------------------
id int(11) YES NULL
Ist das ein Fehler oder gibt es eine alternative Möglichkeit, dies zu überwinden?
create temporary table fake_db.t as select*from t
.Aus dem Handbuch ( CREATE TABLE ):
Das heißt, nachdem Sie eine temporäre Tabelle mit demselben Namen wie eine vorhandene Tabelle erstellt haben, können Sie nicht über diesen Namen auf die normale Tabelle zugreifen, sondern nur über die temporäre Tabelle (während dieser Sitzung). Wenn Sie der Meinung sind, dass dadurch Platz für einen Fehler entsteht, verwenden Sie einen anderen Namen für die temporäre Tabelle (z. B. Präfix verwenden
temp_
) - das ist einfach und lässt keinen Raum für Verwirrung.quelle
Sie haben diese Frage in Ihrer ersten beantwortet. Sie nicht „ Notwendigkeit Aufzeichnungen in einer permanenten Tabelle ... gleiche Namen .... temporäre Tabelle ... gleiche Sitzung einfügen“ , weil Sie die Kontrolle über die Tabellennamen haben!
Sie stellen einfach sicher, dass die temporäre Tabelle ein Präfix / Suffix tmp _ / _ tmp oder ähnliches erhält, da dies Verwirrung vermeidet (wie von @SpeedyGonsales angegeben).
Wenn Sie jetzt einen solchen Fehler machen, denken Sie daran, wie einfach es sein wird, in einem Jahr jemanden zu finden, der neu im System ist! Ihre Organisation (auch wenn das nur Sie sind!) Sollte eine Namenskonvention haben , sonst erhalten Sie diese Art von SNAFU .
quelle