Мне нужно добавить команду alter в мою схему.Alter schema не работает
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'product'
AND table_schema = DATABASE()
AND column_name = 'date_madified'
) > 0,
"SELECT 1;",
"ALTER TABLE `product` CHANGE `date_madified` `date_modified`;"
));
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Вышеупомянутое выполнение без предоставления ошибок. Но имя столбца не изменяется. Когда я попытался проверить ошибку, которую я нашел ниже, это причины. 1. Собственная база данных не выбрана. 2. «IF» не получает, дает правильный результат, хотя я жестко кодирует имя базы данных.
Хотя sql в формате выше успешно выполняется для всех остальных случаев изменения имени, типа данных и размера и т. Д., Но в этом случае он не работает должным образом.
Я уверен, что некоторые из столбцов, возможно, сошли с ума, но mysql блаженно не знает об этом. Вероятно, вы должны искать 'date_modified' вместо – e4c5
На самом деле для имени столбца была ошибка заклинания. Эта схема ALTER предназначена для исправления ошибки. –