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

MySQL의 기존 테이블에서 특정 위치에 열을 추가하는 방법은 무엇입니까?

<시간/>

기존 테이블의 특정 위치에 컬럼을 추가하려면 after 명령어를 사용합니다. 구문은 다음과 같습니다 -

ALTER TABLE yourTableName
ADD COLUMN yourColumnName data type AFTER yourExistingColumnName;

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

mysql> create table changeColumnPosition
-> (
-> Id_Position1 int,
-> Name_Position2 varchar(100),
-> Address_Position4 varchar(200)
-> );
Query OK, 0 rows affected (0.53 sec)

이제 desc 명령을 사용하여 기존 테이블의 설명을 확인할 수 있습니다. 구문은 다음과 같습니다 -

desc yourTableName;

다음은 설명을 확인하는 쿼리입니다.

mysql> desc changeColumnPosition;

다음은 출력입니다.

+-------------------+--------------+------+-----+---------+-------+
| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| Id_Position1      | int(11)      | YES  |     | NULL    |       |
| Name_Position2    | varchar(100) | YES  |     | NULL    |       |
| Address_Position4 | varchar(200) | YES  |     | NULL    |       |
+-------------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

세 개의 열이 있고 Name_Position2 필드 뒤에 다른 열을 추가하고 싶습니다. 쿼리는 다음과 같습니다.

mysql> alter table changeColumnPosition
-> add Age_Position3 int after Name_Position2;
Query OK, 0 rows affected (1.34 sec)
Records: 0 Duplicates: 0 Warnings: 0

Name_Position2 다음에 Age_Position3 열을 성공적으로 추가했습니다. 위에서 수행한 변경 사항에 대해 기존 표를 지금 다시 확인하십시오.

mysql> desc changeColumnPosition;

다음은 출력입니다.

+-------------------+--------------+------+-----+---------+-------+
| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| Id_Position1      | int(11)      | YES  |     | NULL    |       |
| Name_Position2    | varchar(100) | YES  |     | NULL    |       |
| Age_Position3     | int(11)      | YES  |     | NULL    |       |
| Address_Position4 | varchar(200) | YES  |     | NULL    |       |
+-------------------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)