在为我正在管理的数据库创建架构时,之前的dba做出了许多虚假的设计决策。基本上,数据库中具有默认值的每个列也不可为空。几乎任何ORM都会造成严重破坏。我希望能够在information_schema数据库的COLUMNS表上运行更新语句,并且如果列具有默认值,则将nullable设置为YES,但当然,我无法访问该表,根也没有。这甚至是可能的,还是我需要手动更改数千列?
答案 0 :(得分:0)
如果没有root权限或没有其他方法来修改列(除了手动触摸每列之外),您可以执行以下操作:
我会首先在您的开发环境中执行此操作几次,并在生产环境中执行此操作之前对此更改感到非常自信。
此外,根据数据库的大小,这可能是在数据库上执行的相当昂贵的操作。如果运行需要数小时或数天,那么这可能不是一个可行的解决方案。
祝你好运。