2013-02-08 6 views
22

알고 계시 겠지만 modify column syntax을 사용하여 열의 이름을 바꿀 수는 없지만 change column syntax 수 있습니다.열 수정 변경 열

내 질문은 무엇입니까 : modify syntax의 주요 용도는 무엇입니까? 예를 들어

,

alter table tablename change col1 col1 int(10) not null 

대신 편집

alter table tablename modify col1 int(10) not null 





질문 대체

modify syntax의 주된 용도는 무엇입니까? 우리는 변화의 열을 사용하는 대신 열을 수정해야하는 이유 질문 위

아래

로 대체되었다?

+1

mysql의 작성자는 내가 –

+0

이라고 생각하기 때문에 사람들이 이름 짓기의 가치를 과소 평가했기 때문일 수 있습니다. –

답변

38

변경 콜럼 이미 MySQL 데이터베이스를 생성하고 컬럼 중 하나의 이름이 잘못 지정 되었다면이를 제거하고 대체 할 필요가 없다는 것을 결정한 후에 을 사용하여 이름을 바꿀 수 있습니다 변경 열.

ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST; 

MODIFY COLUMN에 이 명령은 할 수 있지만, MySQL에서 열 크기를 조정해야하는 경우가 SQL 명령을 수정하여 사용할 수있는 column.You 이름을 변경하지 않고 모든 변경 COLUMN을 수행합니다. 이렇게하면 이전보다 더 많거나 적은 문자를 허용 할 수 있습니다. 당신은 수정하고 다른

ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz; 

주 사용하여 열 이름을 바꿀 수 없습니다 : TABLE은 테이블을 변경에 사용되는 ALTER 것은 열을 삭제 열 이름, 크기를 변경하는 것을 의미합니다. CHANGE COLUMN 및 MODIFY COLUMN은 ALTER TABLE을 지원하는 데 사용됩니다.이 두 명령은 독립적이지 않습니다. (11) 부호 AUTO_INCREMENT 일을하지만, 한 Statment doctor_experienceid INT를 수정 테이블 변경 : ALTER

+0

'FIRST'와'AFTER'라는 용어는'sql'에서 키워드입니까? –

+1

'FIRST' - 왼쪽에있는 테이블의 첫 번째 열이됩니다. 'AFTER col_name' - 컬럼은이 col_name 다음에 위치 할 것입니다. – Rozkalns

+0

이 명령문에서 열의 이름을 다시 입력하지 않고도 열에'comment 'my comment''가있는 주석을 추가 할 때 특히 유용합니다. – Chinggis6

2

동일합니다. 다른 구문 (Oracle ALTER TABLE)을 지원하기 위해 수행되었습니다. 둘 다 사용할 수 있습니다.

참고 : ALTER TABLE CHANGE old_col_name new_col_name 구문을 사용하면 하나의 명령을 사용하여 열의 이름을 바꿀 수 있습니다.

2

나는 AUTO_INCREMENT 문에 비 AUTO_INCREMENT 컬럼을 만들려고 노력에 노력을 한 시간 이상 후 한 가지 차이점을 발견 테이블 doctor_experience 변경 열 idid int (11) unsigned auto_increment는 오류를보고합니다.

-1

"alter table doctor_experience change column id customer_id int (11) not null auto_increment;"를 시도하십시오. 잘되기를 바랍니다.