top of page

MySQL에서 새 컬럼을 추가하고 자동 채번을 설정하기

  • 2일 전
  • 2분 분량

이번에는 MySQL로 운용 중인 데이터베이스의 테이블에, 새 컬럼을 추가해 자동 채번을 설정할 필요가 생겼으므로, 그 처리의 흐름을 정리합니다.

PurchaseList 테이블 변경

먼저 테이블의 현재 구조를 확인합니다.

show columns from robin.PurchaseList;

현재 테이블 구조는 다음과 같습니다.

Field

Type

Null

Key

Default

 Extra

ASIN

varchar(10)

NO

PRI

NULL


SKU

varchar(255)

NO

PRI

NULL


PurchaseDatetime

datetime

YES


NULL


Brand

varchar(255)

YES


NULL


Title

varchar(255)

YES


NULL


Model

varchar(255)

YES


NULL


LocalCurrency

varchar(10)

YES


NULL


Quantity

double

YES


NULL


LocalPrice

double

YES


NULL


Price

double

YES


NULL


shipped_num

double

YES


NULL


seller_id

varchar(14)

NO


NULL


CreateDate

datetime

NO


CURRENT_TIMESTAMP


UpdateDate

datetime

NO


CURRENT_TIMESTAMP

 on update CURRENT_TIMESTAMP 

다음으로 새 컬럼 `stock_id`를 맨 앞에 추가합니다.

ALTER TABLE PurchaseList ADD stock_id INT FIRST;

새 컬럼 'stock_id'의 값은 모두 NULL이므로, 연번을 채워 넣습니다.

다음 쿼리로 모든 항목에 연번이 부여됩니다.

set @n:=0;
update PurchaseList set stock_id=@n:=@n+1;

'stock_id'를 기본 키로 재설정합니다.

ALTER TABLE PurchaseList DROP PRIMARY KEY, ADD PRIMARY KEY (stock_id);

그 후, 새 컬럼 `shipped_num`을 `Price` 뒤에 추가합니다.

ALTER TABLE PurchaseList ADD shipped_num double AFTER Price;

다음으로 `stock_id`에 자동 증분 설정을 합니다.

ALTER TABLE PurchaseList MODIFY stock_id INT NOT NULL AUTO_INCREMENT;

이것으로 PurchaseList 테이블의 변경이 완료되었습니다.

Field

Type

Null

Key

Default

 Extra

stock_id

int(11)

NO

PRI

NULL

auto_increment

ASIN

varchar(10)

NO


NULL


SKU

varchar(255)

NO


NULL


PurchaseDatetime

datetime

YES


NULL


Brand

varchar(255)

YES


NULL


Title

varchar(255)

YES


NULL


Model

varchar(255)

YES


NULL


LocalCurrency

varchar(10)

YES


NULL


Quantity

double

YES


NULL


LocalPrice

double

YES


NULL


Price

double

YES


NULL


shipped_num

double

YES


NULL


shipped_num

double

YES


NULL


seller_id

varchar(14)

NO


NULL


CreateDate

datetime

NO


CURRENT_TIMESTAMP


UpdateDate

datetime

NO


CURRENT_TIMESTAMP

 on update CURRENT_TIMESTAMP

PurchaseList 테이블에 자동 채번이 이루어지는지 확인

마지막으로 실제 데이터 조작을 했습니다. 최신 5개의 레코드를 표시하는 쿼리가 다음입니다.

SELECT stock_id, SKU, ASIN FROM PurchaseList ORDER BY stock_id DESC LIMIT 5;

stock_id

SKU

ASIN

3683

2023-0472

B08833PNRN

3682

2023-0471

B07WSKKMFV

3681

2023-0470

Z1-6CEL-2X

3680

2023-0469

B0CJJ4SFVY

3679

2023-0494

B0CJJ2WQ1F

연번이 설정되어 있음을 확인할 수 있었습니다.

마지막으로 새 데이터에 대해 자동 연번이 동작하는지 확인합니다.

INSERT INTO PurchaseList (ASIN, SKU) VALUES ('test', 'test');
SELECT stock_id, SKU, ASIN FROM PurchaseList ORDER BY stock_id DESC LIMIT 5;

stock_id

SKU

ASIN

3684

test

test

3683

2023-0472

B08833PNRN

3682

2023-0471

B07WSKKMFV

3681

2023-0470

Z1-6CEL-2X

3680

2023-0469

B0CJJ4SFVY

자동 채번되고 있음을 확인할 수 있었습니다.

뒤처리로 확인용 데이터를 삭제하고 종료.

DELETE FROM PurchaseList WHERE ASIN='test' AND SKU='test';

이상이 MySQL에서 자동 채번용 컬럼을 추가하는 흐름입니다. 앞으로의 시스템의 정상적인 운용에 참고해 주세요.

 
 
 

댓글


© Copyright ROBIN planning LLC.

bottom of page