Mysql drop table/create table序列出现奇怪错误

Mysql drop table/create table序列出现奇怪错误,mysql,mariadb,create-table,drop-table,Mysql,Mariadb,Create Table,Drop Table,这种情况毫无意义 我的php代码中有以下SQL操作序列: DROP TABLE IF EXISTS tablename; CREATE TABLE tablename; 当然php代码看起来不是这样的,但这些是正在执行的命令 每隔一段时间,在CREATE语句上,系统会返回已经存在的表 我认为这是不可能的,除非这是下降过程中的某种延迟。该表是Innodb,我了解到可能有进程使用该表。但是,tablename中嵌入了用户的会话id,因为该表是暂时的,并且专用于特定用户。只有其他用户才能使用该表,

这种情况毫无意义

我的php代码中有以下SQL操作序列:

DROP TABLE IF EXISTS tablename;

CREATE TABLE tablename;
当然php代码看起来不是这样的,但这些是正在执行的命令

每隔一段时间,在CREATE语句上,系统会返回已经存在的表

我认为这是不可能的,除非这是下降过程中的某种延迟。该表是Innodb,我了解到可能有进程使用该表。但是,tablename中嵌入了用户的会话id,因为该表是暂时的,并且专用于特定用户。只有其他用户才能使用该表,甚至任何其他脚本都不能使用该表。它是一个特定于用户、特定于脚本的表。但是,用户可能会执行此脚本,转到其他脚本,然后返回此脚本

描述代码位于一个例程中,该例程决定是否可以重用该表,或者是否必须重新创建该表。如果必须重新创建,则执行两行

知道是什么导致了这种错误情况吗

编辑:

实际代码的问题在于,有时它只会导致更多偏离实际点的问题。无论如何,这里有一份来自实际脚本的副本:

$query1 = "DROP TABLE IF EXISTS {$_SESSION['tmpContact']}";
SQL($query1);
$memory_table = "CREATE TABLE {$_SESSION['tmpContact']}";
SQL函数执行该命令并进行错误处理

$a = mysql_query("SELECT TABLE");
if($a != ''){}else{}

尝试将php与sql混合使用。

计划A:在删除后检查错误。那里可能有线索


计划B:创建临时表…-这将是本地连接,因此[想必]您不需要删除。

如果我们能够看到真正发生的情况,则更容易进行评论。伪代码只能猜测这个错误是否总是发生,或者您是否有关于它发生的特定场景的更多详细信息?如果出现多个请求,并发性是否是一个潜在的问题?您不应该删除并重新创建一个被敲打的表。如果需要,将数据移动到另一个表,然后删除旧数据更容易。@totalhack我也在考虑并发性,但他说每个会话的表名都是唯一的。如果不存在表名,您可以使用CREATE table吗?临时表不符合要求,因为它是一个我们想保留一段时间的表。我们可以改变设计,这样就不会让它挂在那里,这只意味着它必须根据需要重新创建。