Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 열을 변경하면서 부울(BOOLEAN) 타입으로 바꾸고 기본값 1을 설정하는 방법

기존 열을 변경하면서 동시에 값 1을 할당하려면 MySQL의 DEFAULT 옵션을 활용하면 됩니다. 이렇게 설정해 두면 INSERT 명령 실행 시 해당 열에 값을 지정하지 않아도 자동으로 1이 입력됩니다.

테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
   isAdult int
);
Query OK, 0 rows affected (1.39 sec)

ALTER TABLE로 부울 열로 변경하고 기본값 1 할당하기

다음은 이미 생성된 isAdult 열을 ALTER TABLE 문의 CHANGE 절을 사용해 부울 타입으로 변경하고, 기본값 1을 할당하는 방법입니다.

mysql> alter table DemoTable CHANGE isAdult isAdult BOOLEAN DEFAULT '1' NOT NULL;
Query OK, 0 rows affected (1.18 sec)
Records: 0 Duplicates: 0 Warnings: 0

참고로 MySQL에서 BOOLEAN은 내부적으로 TINYINT(1)의 별칭(alias)이며, NOT NULL 제약 조건을 함께 지정하면 NULL 값이 저장되는 것을 방지할 수 있습니다.

레코드 삽입하기

INSERT 명령을 사용해 테이블에 레코드를 몇 개 삽입해 보겠습니다. 앞의 두 쿼리는 값을 지정하지 않았고, 세 번째 쿼리는 명시적으로 0을 넣었습니다.

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(0);
Query OK, 1 row affected (0.15 sec)

결과 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+---------+
| isAdult |
+---------+
|       1 |
|       1 |
|       0 |
+---------+
3 rows in set (0.00 sec)

출력 결과를 보면 값을 지정하지 않은 첫 번째와 두 번째 행에는 기본값인 1이 자동으로 들어갔고, 명시적으로 0을 삽입한 세 번째 행에는 그대로 0이 저장된 것을 확인할 수 있습니다. 이처럼 DEFAULT 옵션을 사용하면 열 변경과 기본값 설정을 한 번의 쿼리로 처리할 수 있습니다.