【问题标题】:rename tables columns in mysql重命名mysql中的表列
【发布时间】:2018-07-30 15:29:55
【问题描述】:

我想重命名 MySql 中的表列,并在引用该列的任何触发器、存储的过程等中更新名称。使用alter table 命令时,默认情况下似乎不会发生这种情况。

如果存在可以执行此类重构的工具,那么如果它可以生成应用这些更改的 SQL 脚本,那就太好了。这将允许我在另一个数据库上进行相同的更改(无需再次使用该工具)。

谢谢, 唐

【问题讨论】:

标签: sql mysql


【解决方案1】:

据我所知,没有一种自动化的方式,但是如果您不使用 * 并且您不使用动态,您可以获得使用该列的过程、触发器和视图的非常权威的列表在您的触发器/过程/视图中生成 SQL。

SELECT 'sp' AS type
     , routine_schema
     , routine_name
  FROM information_schema.routines
 WHERE routine_body LIKE '%$table%'
   AND routine_body LIKE '%$column%'
 UNION ALL
SELECT 'trigger' AS type
     , trigger_schema
     , trigger_name
  FROM information_schema.triggers
 WHERE action_statement LIKE '%$table%'
   AND action_statement LIKE '%$column%'
 UNION ALL
SELECT 'view' AS type
     , table_schema
     , table_name
  FROM information_schema.views
 WHERE view_definition LIKE '%$table%'
   AND view_definition LIKE '%$column%'

【讨论】:

    【解决方案2】:

    我从未使用过它,但看起来是个不错的选择,Devart MySQL Administration。我不知道您是否可以将其用于现有项目,但它看起来像是一个探索的选项。

    我也确实在Stack 上看到了这个,也可以提供帮助

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多