Переименование таблицы - MySQL
Формулировка задачи:
Добрый день! Не могу найти информацию как проигнорировать запрос переименования таблицы если таблицы нет в базе.
Например команда RENAME TABLE name1 TO name2 выдает ошибку при повторном отправлении данных.Первый раз меняет имя,а при обновлении браузера данные POST отправляются заново и он уже не может найти таблицу name1.Как можно избежать ошибки.Спасибо!
Решение задачи: «Переименование таблицы»
textual
Листинг программы
$result = mysql_query("SELECT count(*) FROM information_schema.tables WHERE table_schema = 'DATABASE_NAME' AND table_name = 'name1'"); $table_exist = mysql_result($result, 0); if ($table_exist){ mysql_query("RENAME TABLE name1 TO name2"); }
Объяснение кода листинга программы
$result = mysql_query(
SELECT count(*) FROM information_schema.tables WHERE table_schema = 'DATABASE_NAME' AND table_name = 'name1');
Этот код выполняет запрос к базе данных, чтобы узнать, существует ли таблица с именем 'name1' в базе данных с именем 'DATABASE_NAME'. Результатом запроса является количество строк, соответствующих условию, то есть, есть ли хотя бы одна строка с такими параметрами.$table_exist = mysql_result($result, 0);
Здесь мы получаем результат выполнения запроса и сохраняем его в переменную$table_exist
. Поскольку мы ожидаем, что вернется только одна строка, мы берем первый результат (индекс 0).if ($table_exist){
Если переменная$table_exist
не равна нулю (то есть, таблица существует), то выполняется следующий код.mysql_query(
RENAME TABLE name1 TO name2);
Этот код переименовывает таблицу 'name1' в 'name2'. Пояснение:- Переменная
$result
содержит результат выполнения SQL-запроса. - Переменная
$table_exist
содержит значение, указывающее, существует ли таблица. - Если таблица существует, она переименовывается с помощью функции
mysql_query
. - Новые имена таблицы и исходное имя таблицы сохраняются в переменных
name2
иname1
соответственно.
- Переменная
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д