Mysql удаление таблицы / создание последовательности таблиц дает странную ошибку - PullRequest
0 голосов
/ 19 марта 2020

Эта ситуация не имеет смысла.

В моем коде php есть следующая последовательность операций SQL:

DROP TABLE IF EXISTS tablename;

CREATE TABLE tablename;

Конечно, код php выглядит не так, но это команды выполняется.

Время от времени в операторе CREATE система возвращает «таблица уже существует».

Я бы не подумал, что это может произойти, если это не какая-то задержка в отбрасывании. Таблица - Innodb, и я прочитал, что могут быть процессы, использующие таблицу. Тем не менее, имя таблицы имеет встроенный идентификатор сессии для пользователя, потому что эта таблица несколько временная и предназначена только для конкретного пользователя c - никакой другой пользователь не может использовать таблицу, и даже любой другой сценарий не может быть используй это. Это таблица, определяемая пользователем c, спецификация сценария c. Тем не менее, возможно, что пользователь мог выполнить этот сценарий, go от другого сценария, а затем вернуться к этому сценарию.

Описанный код представляет собой подпрограмму, которая решает, может ли она повторно использовать таблицу или ее необходимо воссоздать. Если он должен быть воссоздан, тогда выполняются две строки.

Любые идеи, что вызывает это условие ошибки?

РЕДАКТИРОВАТЬ:

Проблема с "фактическим кодом" заключается в что иногда это просто приводит к большему количеству вопросов, которые расходятся с фактической точкой. Тем не менее, вот копия самого скрипта:

$query1 = "DROP TABLE IF EXISTS {$_SESSION['tmpContact']}";
SQL($query1);
$memory_table = "CREATE TABLE {$_SESSION['tmpContact']}";

Функция SQL () выполняет команду и обрабатывает ошибки.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

План A: проверка ошибок после DROP. Там может быть подсказка.

План Б: CREATE TEMPORARY TABLE ... - Это будет локально для соединения, поэтому [предположительно] вам не понадобится DROP.

0 голосов
/ 19 марта 2020
$a = mysql_query("SELECT TABLE");
if($a != ''){}else{}

попробуйте смешать php с sql.

...