Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL의 열에서 NOT NULL 제한을 제거하시겠습니까?

<시간/>

MySQL의 컬럼에서 NOT NULL 제한을 제거하려면 ALTER 명령을 사용하십시오. 구문은 다음과 같습니다.

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName dataType;

위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table NotNullDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20) NOT NULL,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.58 sec)

위의 표에서 'Name' 열에 NULL 값을 삽입하면 MySQL은 NOT NULL 제한 오류를 발생시킵니다. NULL 값을 삽입하는 쿼리는 다음과 같습니다.

mysql> insert into NotNullDemo(Name) values(NULL);
ERROR 1048 (23000): Column 'Name' cannot be null

다음은 '이름' 열에서 NOT NULL 제한을 제거하는 쿼리입니다.

mysql> alter table NotNullDemo MODIFY COLUMN Name varchar(20);
Query OK, 0 rows affected (1.78 sec)

레코드:0 중복:0 경고:0

이제 원하는 대로 NULL 값을 삽입할 수 있습니다. NULL 값이 있는 테이블에 레코드를 삽입하는 쿼리:

mysql> insert into removeNotNulllDemo(Name) values(NULL);
Query OK, 1 row affected (0.12 sec)
mysql> insert into removeNotNulllDemo(Name) values('Sam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into removeNotNulllDemo(Name) values('Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into removeNotNulllDemo(Name) values(NULL);
Query OK, 1 row affected (0.10 sec)
mysql> insert into removeNotNulllDemo(Name) values(NULL);
Query OK, 1 row affected (0.10 sec)
mysql> insert into removeNotNulllDemo(Name) values('John');
Query OK, 1 row affected (0.13 sec)

select 문을 사용하여 테이블의 모든 레코드를 표시합니다. 쿼리는 다음과 같습니다.

mysql> select *from removeNotNulllDemo;

다음은 출력입니다.

+----+------+
| Id | Name |
+----+------+
|  1 | NULL |
|  2 | Sam  |
|  3 | Mike |
|  4 | NULL |
|  5 | NULL |
|  6 | John |
+----+------+
6 rows in set (0.00 sec)