집 >데이터 베이스 >MySQL 튜토리얼 >`ALTER TABLE`을 사용하여 MySQL 테이블에 조건부로 열을 추가하려면 어떻게 해야 합니까?
MySQL: ALTER TABLE IF NOT EXISTS를 사용한 조건부 열 추가
MySQL에서 테이블 구조를 수정하려면 열을 추가하거나 제거해야 하는 경우가 많습니다. 그러나 지정된 열이 이미 존재하거나 존재하지 않는 경우 이러한 작업이 실패할 수 있습니다. 이 시나리오를 해결하기 위해 MySQL은 ALTER TABLE IF NOT EXISTS 구문을 사용하여 존재하지 않는 경우에만 열을 추가하는 조건부 방법을 제공합니다.
문제 설명
고려 다음 작업: 기본값이 1인 TINYINT(1)로 multi_user라는 열을 추가하기 위해 settings라는 테이블을 변경합니다. 열이 아직 존재하지 않습니다. ADD COLUMN IF NOT EXISTS 구문이나 조건부 IF 문이 포함된 저장 프로시저와 같은 다양한 접근 방식을 사용한 많은 시도가 실패했습니다.
해결책
조건부 추가하려면 ALTER TABLE IF NOT EXISTS를 사용하여 열을 생성하려면 다음 단계를 따르세요.
IF NOT EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'settings' AND table_schema = 'database_name' AND column_name = 'multi_user') THEN
ALTER TABLE `settings` ADD `multi_user` int(1) NOT NULL default '0';
예
다음은 생성할 수 있는 저장 프로시저의 예입니다.
DELIMITER $$ CREATE PROCEDURE Alter_Table() BEGIN IF NOT EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'settings' AND table_schema = 'database_name' AND column_name = 'multi_user') THEN ALTER TABLE `settings` ADD `multi_user` int(1) NOT NULL default '0'; END IF; END $$ DELIMITER ;
이 프로시저 설정 테이블에 multi_user 열이 있는지 확인합니다. 존재하지 않는 경우 해당 열이 추가됩니다. 그렇지 않으면 작업이 생략됩니다.
위 내용은 `ALTER TABLE`을 사용하여 MySQL 테이블에 조건부로 열을 추가하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!