mysql alter 예제

2019年8月2日

사용 예제에서는 섹션 13.1.9.3, “테이블 예제 변경”을 참조하십시오. 면책 조항 : 이 게시물에 제시 된 예는 유사한 유형의 결과를 달성하는 방법에 대한 가상의 아이디어입니다. 그들은 최고의 솔루션이 아닙니다. 여러분의 특정한 목표와 요구 사항은 다를 수 있습니다. 여러분의 필요와 목표에 가장 도움이 되는 사례를 사용하십시오. 의견은 내 자신의 것입니다. 다음 코드 블록은 NOT NULL 열의 값이 기본적으로 100으로 되는 예제입니다. 이 변환으로 인해 데이터가 변경될 수 있습니다. 예를 들어 문자열 열을 줄이면 값이 잘릴 수 있습니다.

새 데이터 유형으로 변환하면 데이터가 손실되는 경우 작업이 성공하지 못하도록 하려면 ALTER TABLE을 사용하기 전에 엄격한 SQL 모드를 사용하도록 설정합니다(섹션 5.1.11, “서버 SQL 모드”참조). ALTER TABLE에서 테이블 옵션을 사용하면 단일 테이블 특성을 편리하게 변경할 수 있습니다. 예: 테이블 변경으로 인해 적용된 CHECK 제약 조건이 위반되면 오류가 발생하고 테이블이 수정되지 않습니다. 오류가 발생하는 작업의 예: 방금 설명한 형식의 데이터 형식 변경을 방지하려면 변환 을 문자 집합으로 사용하지 마십시오. 대신 수정을 사용하여 개별 열을 변경합니다. 예: 이 예제에서 테이블 이름 cus_tbl은 cus_table으로 이름이 바뀝니다. NDB 테이블의 경우 테이블 또는 열에 사용되는 저장소 유형을 변경할 수도 있습니다. 예를 들어 다음과 같이 만들어진 NDB 테이블을 생각해 보십시오.

사용할 데이터 정렬을 나타내는 COLLATE 절을 지정하지 않으면 명령문은 문자 집합에 대한 기본 데이터 정렬을 사용합니다. 이 데이터 정렬이 의도된 테이블 사용에 적합하지 않은 경우(예: 대/소문자 구분 데이터 에서 대/소문자 구분 되지 않은 데이터 정렬로 변경 하는 경우) 데이터 정렬을 명시적으로 지정 합니다. 이 예제에서는 cus_surname 열을 varchar(50)의 데이터 유형으로 수정하고 열을 강제로 NULL 값을 허용합니다. mysql_info() C API 함수를 사용하면 ALTER TABLE에서 복사한 행 수를 확인할 수 있습니다. 섹션 28.7.7.36, “mysql_info()”를 참조하십시오. COPY 알고리즘을 사용하는 ALTER TABLE 작업은 테이블을 수정하는 다른 작업이 완료될 때까지 기다립니다. 테이블 복사본에 변경 내용을 적용하면 데이터가 복사되고 원래 테이블이 삭제되고 테이블 복사본의 이름이 원래 테이블 의 이름으로 바뀝니다. ALTER TABLE 작업이 실행되는 동안 다른 세션에서 원래 테이블을 읽을 수 있습니다(곧 언급된 경우 제외). ALTER TABLE 작업이 시작된 후 새 테이블이 준비될 때까지 테이블의 업데이트 및 쓰기가 중단된 다음 자동으로 새 테이블로 리디렉션됩니다.

カテゴリー:未分類