在mysql中重命名表列

时间:2009-10-29 14:49:33

标签: sql mysql

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

如果存在可以执行此类重构的工具,那么如果它可以生成应用这些更改的SQL脚本将会很棒。这将允许我在另一个DB上进行相同的更改(不再使用该工具)。

谢谢, 唐

2 个答案:

答案 0 :(得分:1)

我所知道的并不是一种自动化的方法,但如果您不使用*并且不使用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%' ,则可以获得使用该列的过程,触发器和视图的非常权威的列表在您的触发器/过程/视图中使用动态SQL生成。

{{1}}

答案 1 :(得分:0)

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

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