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

MySQL에서 기본적으로 값이 null이 아닌 열을 추가하시겠습니까?

<시간/>

이를 위해서는 기본 키워드를 제거해야 합니다. 구문은 다음과 같습니다.

ALTER TABLE yourTableName ADD COLUMN yourColumnName dataType NOT NULL AFTER yourColumnName;

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

mysql> create table AddingColumnDefaultValueNOTNULL
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstName varchar(20),
   -> LastName varchar(20),
   -> Age int,
   -> Address varchar(100),
   -> Salary int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.58 sec)

이제 테이블의 설명을 확인하십시오. 쿼리는 다음과 같습니다.

mysql> desc AddingColumnDefaultValueNOTNULL;

다음은 출력입니다.

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| Id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(20)  | YES  |     | NULL    |                |
| LastName  | varchar(20)  | YES  |     | NULL    |                |
| Age       | int(11)      | YES  |     | NULL    |                |
| Address   | varchar(100) | YES  |     | NULL    |                |
| Salary    | int(11)      | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
6 rows in set (0.11 sec)

다음은 기본적으로 값이 NULL이 아닌 열을 추가하는 쿼리입니다.

mysql> alter table AddingColumnDefaultValueNOTNULL add column City varchar(20) NOT NULL after Age;
Query OK, 0 rows affected (2.17 sec)
Records: 0 Duplicates: 0 Warnings: 0

이제 테이블의 설명을 다시 한 번 확인할 수 있습니다. 테이블에는 기본적으로 기본값이 NULL이 아닌 'City'라는 이름의 새 열이 하나 있습니다.

테이블의 설명을 확인하는 쿼리는 다음과 같습니다.

mysql> desc AddingColumnDefaultValueNOTNULL;

다음은 출력입니다.

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| Id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| FirstName | varchar(20)  | YES  |     | NULL    |                |
| LastName  | varchar(20)  | YES  |     | NULL    |                |
| Age       | int(11)      | YES  |     | NULL    |                |
| City      | varchar(20)  | NO   |     | NULL    |                |
| Address   | varchar(100) | YES  |     | NULL    |                |
| Salary    | int(11)      | YES  |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+
7 rows in set (0.02 sec)

도시 필드를 보십시오. NULL 열에서 값은 NO입니다. 이것은 City 필드에 NULL 값을 설정할 수 없다고 말합니다.