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

MySQL에서 레코드가 있는 기존 테이블에 NOT NULL 열 추가하는 방법

이미 생성된 테이블에 새로운 NOT NULL 열을 추가하려면 ALTER 명령어를 사용합니다. 먼저 예제 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName varchar(20)
    -> );
Query OK, 0 rows affected (0.60 sec)

기존 테이블에 NOT NULL 열 추가하기

다음은 ALTER TABLE 문을 사용하여 기존 테이블에 새로운 NOT NULL 열을 추가하는 쿼리입니다.

mysql> alter table DemoTable add column StudentAge int NOT NULL;
Query OK, 0 rows affected (0.52 sec)
Records: 0 Duplicates: 0 Warnings: 0

위 쿼리가 실행되면 StudentAge라는 int 타입의 열이 추가되며, 이 열에는 NULL 값을 저장할 수 없습니다.

테이블에 데이터 삽입하기

이제 INSERT 명령어를 사용하여 테이블에 레코드를 삽입해 보겠습니다.

mysql> insert into DemoTable(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName,StudentAge) values('David',23);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(StudentName,StudentAge) values('Mike',NULL);
ERROR 1048 (23000): Column 'StudentAge' cannot be null

위 실행 결과를 보면, 세 번째 INSERT 문에서 StudentAge 열에 NULL 값을 삽입하려고 했기 때문에 ERROR 1048 오류가 발생한 것을 확인할 수 있습니다. 이는 해당 열이 NOT NULL 제약 조건을 가지고 있기 때문입니다.

삽입된 레코드 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | David       |         23 |
+-----------+-------------+------------+
2 rows in set (0.00 sec)

정리

MySQL에서 기존 테이블에 NOT NULL 열을 추가할 때는 ALTER TABLE 테이블명 ADD COLUMN 열이름 데이터타입 NOT NULL; 형식의 쿼리를 사용합니다. NOT NULL 제약 조건이 설정된 열에는 반드시 유효한 값을 삽입해야 하며, NULL 값을 넣으려고 하면 오류가 발생하므로 주의해야 합니다.