Hoy tuve este problema extraño cuando dejé caer una tabla temporal. Dejé caer la tabla temporal y descifré la tabla solo para verificar. Pero, la mesa no se dejó caer. Después de algunas búsquedas encontré que:
MySQL permite crear una tabla temporal con el mismo nombre que una tabla permanente. Entonces la tabla temporal se cayó y no la tabla permanente. Realmente me confundí con qué mesa estoy trabajando.
Versión de MySQL: 5.1.36-enterprise-gpl-pro-log
Esto es lo que probé:
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
¿Es esto un error o hay una forma alternativa de superar esto?
create temporary table fake_db.t as select*from t
.Del manual ( CREAR TABLA ):
Eso significa que después de crear una tabla temporal con el mismo nombre que alguna tabla existente, no puede acceder a la tabla normal con ese nombre, sino solo a la temporal (durante esa sesión). Si cree que se abre espacio para un error, use un nombre diferente para la tabla temporal (por ejemplo, use el prefijo
temp_
), eso es simple y no deja espacio para la confusión.fuente
Has respondido esta pregunta en la primera. Usted no " necesidad de insertar registros en una tabla permanente ... mismo nombre .... tabla temporal ... misma sesión" porque usted tiene control sobre los nombres de las tablas!
Simplemente asegúrese de que a la tabla temporal se le dé un prefijo / sufijo tmp _ / _ tmp o similar, ya que esto evita cualquier confusión (según lo mencionado por @SpeedyGonsales).
Si está cometiendo este tipo de error ahora, ¡piense lo fácil que será hacer que alguien nuevo en el sistema en un año! Su organización (¡incluso si es solo usted!) Debería tener una convención de nomenclatura , de lo contrario obtendrá este tipo de SNAFU .
fuente