"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 생성 날짜를 기준으로 MySQL 테이블에 일련 ID 추가: 단계별 가이드

생성 날짜를 기준으로 MySQL 테이블에 일련 ID 추가: 단계별 가이드

2024-11-09에 게시됨
검색:552

Adding a Serial ID to MySQL Tables Based on Creation Date: A Step-by-Step Guide

데이터베이스가 성장하고 발전함에 따라 새 열을 추가하거나 기존 구조를 수정해야 하는 경우가 종종 있습니다. 일반적인 시나리오 중 하나는 특히 이 ID가 레코드 생성의 시간순을 반영하도록 하려는 경우 기존 테이블에 일련 ID를 추가해야 하는 경우입니다. 이 블로그 게시물에서는 생성 날짜 열을 기준으로 정렬된 자동 증가 일련 ID를 MySQL 테이블에 추가하는 과정을 살펴보겠습니다.

문제

MySQL 데이터베이스에 users라는 테이블이 있다고 상상해 보세요. 이 테이블에는 각 사용자가 등록한 시기를 기록하는 Registration_date datetime 열을 포함하여 다양한 열이 있습니다. 이제 자동 증가 정수 역할을 하는 user_serial_number 새 열을 추가하려고 하지만 이러한 ID의 초기 할당은 Registration_date 순서를 기반으로 하도록 하려고 합니다.

해결책: 3단계 프로세스

MySQL 명령의 조합을 사용하여 이를 달성할 수 있습니다. 단계별 프로세스는 다음과 같습니다.

1단계: 새 열 추가

먼저 테이블에 새로운 user_serial_number 열을 추가해야 합니다.

ALTER TABLE users ADD COLUMN user_serial_number INT;

이 명령은 사용자 테이블에 user_serial_number라는 새 정수 열을 추가합니다.

2단계: 새 열 채우기

이제 새 열이 있으므로 등록_날짜 순서에 따라 값을 채워야 합니다.

SET @row_number = 0;
UPDATE users 
SET user_serial_number = (@row_number:=@row_number   1)
ORDER BY registration_date;

이를 분석해 보겠습니다.

  • @row_number 변수를 0으로 초기화합니다.
  • 그런 다음 user_serial_number를 증분 값으로 설정하여 사용자 테이블의 모든 행을 업데이트합니다.
  • ORDER BY Registration_date를 사용하면 등록 날짜 순서에 따라 ID가 할당됩니다.

3단계: 자동 증가 설정

마지막으로 이 열을 향후 삽입을 위해 자동 증가로 설정해야 합니다.

ALTER TABLE users 
MODIFY COLUMN user_serial_number INT AUTO_INCREMENT,
ADD PRIMARY KEY (user_serial_number);

이 명령은 user_serial_number 열이 자동 증가되도록 수정하고 이를 기본 키로 설정합니다.

중요한 고려사항

  1. 기본 순서: 기본적으로 MySQL의 ORDER BY 절은 오름차순(ASC)으로 정렬됩니다. 즉, 오래된 레코드에는 더 낮은 일련 번호가 부여되고, 최신 레코드에는 더 높은 번호가 부여됩니다. 이를 되돌리려면 2단계에서 ORDER BY Registration_date DESC를 사용할 수 있습니다.

  2. 향후 삽입: 이 프로세스가 끝나면 새 레코드는 등록_날짜 값에 관계없이 user_serial_number로 사용 가능한 다음 정수를 가져옵니다. 순서는 열의 초기 채우기에만 적용됩니다.

  3. 기본 키: user_serial_number가 기본 키가 되어야 하는 경우(3단계에서와 같이) user_serial_number에 추가하기 전에 기존 기본 키를 제거해야 합니다.

  4. 성능: 대형 테이블의 경우 이 작업은 시간이 많이 걸리고 테이블이 잠길 수 있습니다. 사용량이 적은 시간에 실행해 보세요.

  5. 고유성: ID 할당 프로세스 중에 잠재적인 문제를 방지하려면 Registration_date 값이 고유한지 확인하세요.

향후 삽입을 위한 순서 유지

향후 삽입에서 항상 등록 날짜를 기준으로 순서를 유지하려면 애플리케이션에서 이 논리를 구현하거나 MySQL 트리거를 사용해야 합니다. 그러나 이는 복잡할 수 있고 성능에 영향을 미칠 수 있으므로 이러한 솔루션을 구현하기 전에 사용 사례를 신중하게 고려하십시오.

결론

날짜/시간 열을 기반으로 기존 MySQL 테이블에 일련 ID를 추가하는 것은 몇 가지 SQL 명령으로 수행할 수 있는 간단한 프로세스입니다. 이 기술은 데이터 분석, 고유 식별자 생성 또는 데이터의 명확한 시간순 정렬 설정에 특히 유용할 수 있습니다.

이 프로세스는 일련 ID의 초기 입력에는 잘 작동하지만 향후 삽입을 위해 이 순서를 유지하려면 추가 고려 사항과 잠재적으로 더 복잡한 솔루션이 필요하다는 점을 기억하십시오. 프로덕션 데이터베이스에서 이러한 작업을 실행하기 전에 항상 데이터 복사본에서 테스트하세요.

이 단계를 수행하면 기존 데이터에 유용한 새 차원을 추가하여 데이터베이스 쿼리 및 구성에 대한 새로운 가능성을 열 수 있습니다.

릴리스 선언문 이 기사는 https://dev.to/manojspace/adding-a-serial-id-to-mysql-tables-based-on-creation-date-a-step-by-step-guide-2em3?에서 재현됩니다. 1. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제해 주시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3