以同样的方式SHOW CREATE TABLE tblname;带回以前执行的内容,无论如何都要查看ALTER TABLE查询的SQL? 请帮帮忙?
答案 0 :(得分:5)
一个小小的澄清:show create table
实际上并没有“带回以前执行的内容”。它只显示了从头开始创建表的DDL。该表可能已创建,然后多次更改,但show create table
反映了表的当前状态。
至于找到最近在桌面上运行的任何alter table
语句,最好的选择是二进制日志。
首先检查是否启用了二进制日志记录:
show variable like 'log_bin';
如果是,找到相关时间段的二进制日志,使用mysqlbinlog将其转换为SQL,然后grep查找相关的表名,找到您要查找的alter table
语句。
答案 1 :(得分:2)
工具强>
<强>手册强>
首先检查是否启用了二进制日志记录:
show variable like 'log_bin';
然后,
mysqlbinlog /var/log/mysql/mysql-bin.000001 | grep 'alter table *tablename*' > test.file
转到test.file查看alter语句。
答案 2 :(得分:1)
如果您的MySQL实例已启用日志记录,则可以查看日志。这将是最好的选择。
如果您的系统已启用历史记录,则可以从同一系统启动客户端备份并尝试使用向上箭头。你或许可以在那里看到命令。
如果您知道运行该命令的用户并且他们碰巧直接从命令行运行它,那么相同的历史技巧可能会有效。