當我想你只有這樣做一次,你可以按照以下兩個步驟:
首先執行這個查詢:
select concat('alter table ', '`',table_name,'` ',
'modify column `', column_name,'` ',
column_type,
ifnull(concat(' character set ', character_set_name), ''),
ifnull(concat(' collate ', collation_name), ''),
if(is_nullable = 'no', ' not null ', ''),
if(column_default is null, '', concat(' default ', quote(column_default))),
' ', extra, ';')
as column_definition
from information_schema.columns
where table_schema like 'db%'
and column_comment is not null;
...上表架構改變的條件你案件。輸出將是每行的SQL語句:
column_definition
---------------------------------------------------------
alter table `tab` modify column `id` int(11) not null auto_increment;
alter table `tab` modify column `name` varchar(100) not null;
將SQL語句複製到該輸出中並執行它們。 comment
子句的缺失將刪除這些列上的註釋。
爲什麼?好處在哪裏? – EJP
你可以在一個存儲過程中使用info模式,一個遊標和一個帶有concat字符串和執行的'prepare'來執行 – Drew
好處是,當在server/phpmyadmin版本之間移動腳本時,某些服務器/ pma版本會受到攻擊在運行帶註釋行的腳本時啓動。我們奴隸有一段時間試圖提醒自己。 – Drew