>데이터 베이스 >MySQL 튜토리얼 >SQL의 기존 테이블에 ID 열을 어떻게 추가할 수 있습니까?

SQL의 기존 테이블에 ID 열을 어떻게 추가할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-22 23:12:17934검색

How Can I Add an Identity Column to an Existing Table in SQL?

기존 SQL 테이블에 ID 열 추가: 방법 및 고려 사항

효율적인 데이터베이스 관리는 잘 정리되어 있고 쉽게 액세스할 수 있는 데이터에 달려 있습니다. 이를 위해서는 기본 키가 매우 중요하며, ID 열은 고유한 순차적 식별자를 테이블 행에 할당하는 간소화된 방법을 제공합니다. 그러나 기존 열을 ID 열로 직접 변환하는 것은 SQL에서 불가능합니다. 이 문서에서는 기존 테이블에 ID 열을 추가하기 위한 최상의 전략을 설명합니다.

ID 열 통합 전략

기존 테이블에 ID 열을 추가하는 데는 두 가지 기본 접근 방식이 있습니다.

  1. ID 열이 있는 새 테이블 생성:

    • 원하는 ID 열을 포함하는 새 테이블이 구성됩니다.
    • 데이터는 INSERT INTO 문을 사용하여 원본 테이블에서 마이그레이션됩니다.
    • 원래 테이블이 삭제되고 새 테이블의 이름이 바뀌어 원래 테이블 이름을 유지합니다. 이를 통해 원활한 전환이 보장됩니다.
  2. 새 ID 열 추가:

    • ID 속성이 포함된 새 열이 기존 테이블에 추가됩니다.
    • 이후 원래 기본 키 열은 삭제됩니다.
    • 새로 추가된 ID 열의 이름은 원래 기본 키 이름과 일치하도록 변경됩니다. 이 방법은 더 간단하지만 ID 열의 기존 데이터를 보존하지 않습니다.

방법 1: 새로운 테이블 접근 방식

이 방법은 새 ID 열 내의 기존 데이터 값을 유지합니다. 그러나 원본 테이블은 삭제된다는 점을 기억하세요. 데이터 손실을 방지하려면 꼼꼼한 데이터 백업이 중요합니다.

<code class="language-sql">CREATE TABLE dbo.Tmp_Names (
  Id INT NOT NULL IDENTITY(1, 1),
  Name VARCHAR(50) NULL
) ON [PRIMARY]

SET IDENTITY_INSERT dbo.Tmp_Names ON

IF EXISTS (SELECT * FROM dbo.Names)
  INSERT INTO dbo.Tmp_Names (Id, Name)
  SELECT Id, Name FROM dbo.Names TABLOCKX

SET IDENTITY_INSERT dbo.Tmp_Names OFF

DROP TABLE dbo.Names

EXEC sp_rename 'Tmp_Names', 'Names'</code>

방법 2: 새로운 컬럼 접근 방식

이 접근 방식은 원래 열의 데이터를 유지하지 않고 새 ID 열을 추가합니다. 새 열은 자동으로 일련 번호로 채워집니다.

<code class="language-sql">ALTER TABLE Names
ADD Id_new INT IDENTITY(1, 1)
GO

ALTER TABLE Names DROP COLUMN ID
GO

EXEC sp_rename 'Names.Id_new', 'ID', 'COLUMN'</code>

결론

직접 변경은 가능하지 않지만 이러한 방법은 ID 열을 기존 데이터베이스 구조에 통합하기 위한 효과적인 솔루션을 제공합니다. 데이터 보존 요구 사항에 가장 적합한 방법을 선택하고 데이터 무결성을 보장하기 위해 데이터 전송 프로세스를 신중하게 관리하세요.

위 내용은 SQL의 기존 테이블에 ID 열을 어떻게 추가할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.