ホームページ > データベース > mysql チュートリアル > 既存のデータベーステーブルに ID 列を追加するにはどうすればよいですか?

既存のデータベーステーブルに ID 列を追加するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-22 23:20:13
オリジナル
410 人が閲覧しました

How Can I Add an Identity Column to an Existing Database Table?

ID 列を含めるように既存のテーブルを変更する

多くのデータベース タスクでは、既存のテーブルに ID 列を追加する必要があります。 よくある質問は、既存の列を変更するか、新しい列を作成するかということです。

直接変換が不可能な理由

既存の列を ID 列に直接変換することは実現できません。 ID 列は、定義されたシード値から始まる連続した値を生成します。 既存の列を変更すると、データの整合性が損なわれます。

ID 列を追加するための戦略

ID 列を追加するには 2 つの主な方法があります:

1. ID を使用して新しいテーブルを作成する

これには以下が含まれます:

  • 元のテーブルから ID 列を含む新しいテーブルにデータを転送するスクリプトを生成します。
  • 元のテーブルを削除します。
  • 元のテーブルの名前と一致するように新しいテーブルの名前を変更します。
  • このメソッドは、元のデータ値を保持します (ただし、連続的ではない可能性があります)。

2.新しい ID 列の追加

このアプローチは以下で構成されます:

  • ID プロパティを使用して新しい列を追加します。
  • 元の列を削除します (またはデータを新しい列に移行します)。
  • 元の列の名前と一致するように新しい列の名前を変更します。
  • このメソッドは、ID 列に元のデータ値を保持しません。 ID 列は新しい連続値を生成します。

SQL クエリの例

方法 1: 新しいテーブルの作成

<code class="language-sql">CREATE TABLE New_Table (
    Id INT NOT NULL IDENTITY(1, 1),
    Name VARCHAR(50) NULL
);

INSERT INTO New_Table (Id, Name)
SELECT Id, Name
FROM Original_Table;

DROP TABLE Original_Table;

EXEC sp_rename 'New_Table', 'Original_Table';</code>
ログイン後にコピー

方法 2: 新しい列を追加する

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

ALTER TABLE Original_Table
DROP COLUMN Id;

EXEC sp_rename 'Original_Table.Id_new', 'Id', 'COLUMN';</code>
ログイン後にコピー

重要な考慮事項

  • ID 列を含む新しいテーブルを作成する場合は、NOT NULL 制約を使用します。 (必要に応じて) 既存の値を維持するには、データを挿入する前に IDENTITY_INSERTON に設定します。
  • ID 列は自動的に連続番号を生成し、列内の既存の値を置き換えます。

以上が既存のデータベーステーブルに ID 列を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート