Таким же образом ПОКАЖИТЕ CREATE TABLE tblname; возвращает то, что ранее выполнялось, должен там так или иначе просмотреть SQL запроса ALTER TABLE? Помогите?
Если в вашем экземпляре MySQL включено ведение журнала, вы можете просматривать журналы. Это был бы лучший вариант.
Если в вашей системе включена история, вы можете запустить резервное копирование клиента из той же системы и попробовать стрелку вверх. Возможно, вы увидите там команду.
Если вы знаете пользователя, запустившего команду, и он запускал ее непосредственно из командной строки, может сработать тот же трюк с историей.
Одно небольшое уточнение: show create table
на самом деле не «возвращает то, что было ранее выполнено». Он просто показывает вам DDL, который создаст таблицу с нуля. Таблица могла быть создана, а затем изменена много раз, но show create table
отражает текущее состояние таблицы.
Что касается поиска любых операторов alter table
, которые выполнялись в таблице в последнее время, лучшим вариантом является двоичный журнал.
Сначала проверьте, включено ли ведение двоичного журнала:
show variable like 'log_bin';
Если да, найдите двоичный журнал за соответствующий период времени, используйте mysqlbinlog, чтобы преобразовать его в SQL, затем grep для имени соответствующей таблицы, чтобы найти alter table
инструкция, которую вы ищете.