MySQL에서 열 이름 바꾸기


242

이 SQL 표현식을 사용하여 MySQL 커뮤니티 서버 5.5.27에서 열의 이름을 바꾸려고합니다.

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

나는 또한 시도했다

ALTER TABLE table_name RENAME old_col_name TO new_col_name;

그러나 그것은 말합니다 :

오류 : MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오.


답변:


405

다음 쿼리를 사용하십시오.

ALTER TABLE tableName CHANGE `oldcolname` `newcolname` datatype(length);

RENAME기능은 Oracle 데이터베이스에서 사용됩니다.

ALTER TABLE tableName RENAME COLUMN "oldcolname" TO "newcolname" datatype(length);

큰 따옴표는 Oracle의 구문에 사용되는 반면 MySQL에는 백틱이 사용됩니다. 또한 MySQL 8.0은 백틱을 허용하지 않을 수 있습니다. 이 경우 백틱없이 쿼리를 실행하면 작동합니다.


@ lad2025 는 아래에 언급하지만, 그가 말한 것을 추가하는 것이 좋을 것이라고 생각했습니다. @ lad2025 감사합니다!

RENAME COLUMNMySQL 8.0에서 를 사용하여 이름을 변경해야하는 열의 이름을 바꿀 수 있습니다.

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

ALTER TABLE 구문 :

열 이름 바꾸기 :

  • 열 이름은 변경할 수 있지만 정의는 변경할 수 없습니다.

  • 정의를 변경하지 않고 열의 이름을 바꾸는 것이 CHANGE보다 편리합니다.


2
이름이 같은 열을 가질 수 있습니까? 아니면 왜 데이터 유형을 지정해야합니까?
Lealo

5
@Lealo이 명령은 CHANGE테이블의 열과 유형을 변경합니다. MYSQL 문서 상태 : Attributes present in the original definition but not specified for the new definition are not carried forward.. 테이블 정의를 지정해야하거나 해당 열에 사용되지 않음을 의미합니다. 열의 데이터 유형 만 변경하려면newcolname
Rizky Fakkel

2
@Flimm 다시 맞습니다. 오라클 문서; In MySQL, the quote character is the backtick. If the SQL mode ANSI_QUOTES is set, double quotes can also be used to quote the identifiers. In Oracle, identifiers are quoted using double quotation marks.Aaaand가 편집했습니다. 커피가 필요합니다.
Rizky Fakkel

1
@Smogen 감사합니다! 이상하다. 백틱은 MySQL의 기본 따옴표 문자로 간주됩니다. "대신 사용하지 않았 `습니까?
Rizky Fakkel 2018 년

2
MySQL에서 ( MYSQL STATUSmysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper), 나는 Error 1064 (42000): You have an error in your SQL Syntax;...near 'COLUMN thread_id TO threadId'...쿼리를 얻는다 ALTER TABLE comment RENAME COLUMN thread_id TO threadId;. 나는 또한 백틱을 추가하려고 시도했다 `. 나는을 사용하여 끝났다 CHANGE.
Reed

60

서버 버전 : 5.6.34 MySQL 커뮤니티 서버

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name data_type;

80
절대적으로 DROP과 ADD를 사용하지 마십시오. 이 작업을 수행하여 모든 데이터를 잃게됩니다
tomazahlin

27

에서 의 MySQL 5.7 레퍼런스 매뉴얼 .

구문 :

변경 테이블 t1 변경 ab 데이터 유형;

예 : COLUMN customer_name , customer_street , customercity가있는 Customer TABLE의 경우 .

그리고 우리는 변경할 customercity을 에게 customer_city :

alter table customer change customercity customer_city VARCHAR(225);

18

MySQL 8.0부터는

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

ALTER TABLE 구문 :

열 이름 바꾸기 :

  • 열 이름은 변경할 수 있지만 정의는 변경할 수 없습니다.

  • 정의를 변경하지 않고 열의 이름을 바꾸는 것이 CHANGE보다 편리합니다.

DBFiddle 데모


4

다음 코드를 사용할 수 있습니다.

ALTER TABLE `dbName`.`tableName` CHANGE COLUMN `old_columnName` `new_columnName` VARCHAR(45) NULL DEFAULT NULL ;



1

구문 : ALTER TABLE table_name CHANGE old_column_name new_column_name 데이터 유형;

테이블 이름 인 경우 학생 및 열 이름은 이름 . 그런 다음 NameFirst_Name 으로 변경하려면

ALTER TABLE Student CHANGE Name First_Name varchar(20);

0

MySQL 버전 5의 경우

alter table *table_name* change column *old_column_name* *new_column_name* datatype();


0

mysql에서 쿼리는

ALTER TABLE table_name change column_1 column_2 Data_Type;

Oracle에서 쿼리를 작성했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.