我想重命名MySql中的表列,並且在任何引用列的觸發器,存儲過程等中更新名稱。這在使用alter table
命令時默認情況下不會發生。在mysql中重命名錶列
如果存在可以執行這種重構的工具,那麼如果它能夠生成應用這些更改的SQL腳本就會很好。這將允許我在另一個數據庫上進行相同的更改(無需再次使用該工具)。
謝謝, 唐
我想重命名MySql中的表列,並且在任何引用列的觸發器,存儲過程等中更新名稱。這在使用alter table
命令時默認情況下不會發生。在mysql中重命名錶列
如果存在可以執行這種重構的工具,那麼如果它能夠生成應用這些更改的SQL腳本就會很好。這將允許我在另一個數據庫上進行相同的更改(無需再次使用該工具)。
謝謝, 唐
我從來沒有使用過這一點,但看起來像一個不錯的選擇,Devart MySQL Administration。我不知道你是否可以將它用於現有的項目,但它看起來像是一個探索的選擇。
而且我沒有看到這樣的Stack,可以幫助以及
沒有,我知道的一個自動化的方式,但你可以得到一個非常權威的過程和觸發器以及使用該列視圖列表,前提是您不要使用*
,並且您不在觸發器/程序/視圖中使用動態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%'
它不會自動發生。我認爲這是這個開放驗證的錯誤報告:http://bugs.mysql.com/bug.php?id=33000 – 2009-10-29 19:00:25