2016-07-25 1 views
0

열 주석을 삭제할 수 있다는 것을 알고 있습니다. alter table tal_name modify column Field Type comment ''.
하지만 삭제할 댓글이 많으면 SQL 스크립트로 어떻게 할 수 있습니까?
처음으로 전체 정보를 얻으려면 show full columns from tal_name을 사용하고 싶습니다. 그래서 커서를 사용하여 주석을 삭제할 수 있지만, show 문을 사용한 결과를 사용할 수 없다는 사실은 select 문과 같습니다.
show 결과에서 create view 수 없습니다.
아마도 제 생각이 잘못되었습니다. 따라서 배치를 삭제할 수있는 방법이 있습니까?
도움을 주시면 감사하겠습니다.어떻게 일괄 처리 MySQL에서 열 주석을 삭제할 수 있습니까?

+2

왜? 혜택은 어디에 있습니까? – EJP

+0

정보 스키마, 커서 및 concat 문자열과 함께'prepare'를 사용하여 저장된 proc에서이 작업을 수행 할 수 있습니다. – Drew

+0

이점은 server/phpmyadmin 버전간에 스크립트를 이동할 때 일부 서버/pma 버전이 불어납니다 주석 줄이있는 스크립트를 실행할 때 그리고 우리는 언젠가 그것을 상기시키기 위해 노예로 노예가됩니다. – Drew

답변

0

당신 만이 두 단계를 수행 할 수, 한 번 이렇게해야 가정으로 :

먼저이 쿼리 실행 님의 테이블 스키마에 조건을 변경 ...

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 절이 없으면 해당 열에 대한 주석이 삭제됩니다.

관련 문제