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

열 데이터를 잃지 않고 MySQL 테이블의 열 위치를 변경하는 방법은 무엇입니까?

<시간/>

ALTER TABLE 명령을 사용하여 데이터 손실 없이 MySQL 테이블의 열 위치를 변경할 수 있습니다. 구문은 다음과 같습니다 -

ALTER TABLE yourTableName MODIFY yourColumnName1 data type AFTER yourColumnName2;

위의 개념을 이해하기 위해 테이블을 만들어 보겠습니다. 일부 열이 있는 테이블을 생성하는 쿼리는 다음과 같습니다. -

mysql> create table changeColumnPositionDemo
−> (
−> StudentId int,
−> StudentAddress varchar(200),
−> StudentAge int,
−> StudentName varchar(200)
−> );
Query OK, 0 rows affected (0.72 sec)

테이블에 일부 데이터를 삽입해 보겠습니다. 레코드를 삽입하는 쿼리는 다음과 같습니다. -.

mysql> insert into changeColumnPositionDemo values(101,'US',23,'Johnson');
Query OK, 1 row affected (0.13 sec)

mysql> insert into changeColumnPositionDemo values(102,'UK',20,'John');
Query OK, 1 row affected (0.19 sec)

mysql> insert into changeColumnPositionDemo values(103,'US',22,'Carol');
Query OK, 1 row affected (0.39 sec)

mysql> insert into changeColumnPositionDemo values(104,'UK',19,'Sam');
Query OK, 1 row affected (0.18 sec)

이제 select 문을 사용하여 모든 레코드를 표시할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> select *from changeColumnPositionDemo;

다음은 출력입니다 -

+-----------+----------------+------------+-------------+
| StudentId | StudentAddress | StudentAge | StudentName |
+-----------+----------------+------------+-------------+
|       101 | U              | 23         | Johnson     |
|       102 | UK             | 20         | John        |
|       103 | US             | 22         | Carol       |
|       104 | UK             | 19         | Sam         |
+-----------+----------------+------------+-------------+
4 rows in set (0.00 sec)

다음은 데이터 손실 없이 열 위치를 변경하는 쿼리입니다. "StudentAge" 열 다음으로 "StudentAddress" 열을 이동합니다 -

mysql> ALTER TABLE changeColumnPositionDemo MODIFY StudentAddress varchar(200) AFTER StudentAge;
Query OK, 0 rows affected (2.27 sec)
Records: 0 Duplicates: 0 Warnings: 0

위에서 StudentAge 열 이름 뒤에 StudentAddress 열을 설정했습니다.

다음은 위의 두 컬럼이 데이터 손실 없이 변경되었는지 확인하는 쿼리입니다 -

mysql> select *from changeColumnPositionDemo;

다음은 출력입니다 -

+-----------+------------+----------------+-------------+
| StudentId | StudentAge | StudentAddress | StudentName |
+-----------+------------+----------------+-------------+
|       101 | 23         | US             | Johnson     |
|       102 | 20         | UK             | John        |
|       103 | 22         | US             | Carol       |
|       104 | 19         | UK             | Sam         |
+-----------+------------+----------------+-------------+
4 rows in set (0.00 sec)