【问题标题】:Can i undo ALTER table in - MySQL?我可以在 MySQL 中撤消 ALTER 表吗?
【发布时间】:2017-07-06 19:20:28
【问题描述】:

不知道是否可能,我将 VARCHAR 列更改为要回滚的十进制类型。因为它将所有浮点值混合为整数。像 2.00 变成了 200。有什么办法可以撤消我最后一张表的更改?请指教。

【问题讨论】:

  • 最好的办法是从运行 ALTER 语句之前恢复备份。
  • 很遗憾我没有做任何备份。
  • 对不起。唯一的做法是将其转换回 VARCHAR,然后手动修复这些值。我知道可能无法知道 200 是 2.00 还是 20.0 还是 200。:(
  • “很遗憾我没有做任何备份”。希望这将是一个很好的教训,以便将来在进行更改之前始终备份您的数据。如果您正在编写应用程序,最好将 SQL 脚本存储在源代码管理中,这样您就可以了解之前运行的内容。

标签: mysql alter


【解决方案1】:

不,您不能回滚 ALTER TABLE 语句。

https://dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html

有些语句不能回滚。通常,这些包括数据定义语言 (DDL) 语句,例如创建或删除数据库的语句,创建、删除或更改表或存储例程的语句。

(强调我的)

正如上面的 Chris Peters cmets,您可以执行相反的 ALTER TABLE 操作,然后使用 UPDATE 语句清理您的数据。

【讨论】:

    猜你喜欢
    • 2013-03-06
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多