Какой-либо путь к представлению ALTER TABLE после его выполняемого? - MySQL

Таким же образом ПОКАЖИТЕ CREATE TABLE tblname; возвращает то, что ранее выполнялось, должен там так или иначе просмотреть SQL запроса ALTER TABLE? Помогите?

7
задан Brian Tompsett - 汤莱恩 22 May 2017 в 22:07
поделиться

2 ответа

Если в вашем экземпляре MySQL включено ведение журнала, вы можете просматривать журналы. Это был бы лучший вариант.

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

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

1
ответ дан 7 December 2019 в 05:21
поделиться

Одно небольшое уточнение: show create table на самом деле не «возвращает то, что было ранее выполнено». Он просто показывает вам DDL, который создаст таблицу с нуля. Таблица могла быть создана, а затем изменена много раз, но show create table отражает текущее состояние таблицы.

Что касается поиска любых операторов alter table , которые выполнялись в таблице в последнее время, лучшим вариантом является двоичный журнал.

Сначала проверьте, включено ли ведение двоичного журнала:

show variable like 'log_bin';

Если да, найдите двоичный журнал за соответствующий период времени, используйте mysqlbinlog, чтобы преобразовать его в SQL, затем grep для имени соответствующей таблицы, чтобы найти alter table инструкция, которую вы ищете.

5
ответ дан 7 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: