Удаление строки, если в MySQL существует столбец - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь удалить строки, если значение столбца new_id равно 2 из нескольких таблиц mysql, но я не знаю, есть ли во всех этих таблицах столбец new_id.

Я пробую следующее утверждение, но оно дает синтаксическую ошибку:

DELETE FROM table_name WHERE new_id =2 IF EXISTS new_id int(11)

Как это сделать?

Ответы [ 2 ]

1 голос
/ 02 июля 2019

Вы можете проверить information schema:

IF EXISTS ( SELECT * 
            FROM information_schema.columns 
            WHERE table_name = 'table_name' 
            AND column_name = 'new_id' 
            AND table_schema = DATABASE () ) THEN
DELETE FROM table_name WHERE new_id = 2;
END IF;
1 голос
/ 02 июля 2019

Вы можете получить имя столбца с помощью запроса ниже

SHOW COLUMNS FROM `table_name` LIKE 'new_id';

Затем из внешнего интерфейса вы можете принять решение выполнить запрос на удаление.

...