[解決済み】PostgreSQLで、既存のテーブルに自動インクリメントの主キーを追加する方法は?
2022-04-02 05:40:12
質問
既存のデータがあるテーブルがあります。テーブルを削除して再作成することなく、主キーを追加する方法はありますか?
解決方法を教えてください。
( 更新情報 - コメントいただいた皆様、ありがとうございました )
PostgreSQLの最新バージョン
という名前のテーブルがあるとします。
test1
に、自動インクリメントの主キーである
id
(サロゲート)カラムがあります。最近のバージョンのPostgreSQLでは、以下のコマンドで十分でしょう。
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
旧バージョンのPostgreSQL
PostgreSQLの古いバージョン(8.xより前?)では、すべての汚い仕事をしなければなりませんでした。以下の一連のコマンドでうまくいくはずです。
ALTER TABLE test1 ADD COLUMN id INTEGER;
CREATE SEQUENCE test_id_seq OWNED BY test1.id;
ALTER TABLE test ALTER COLUMN id SET DEFAULT nextval('test_id_seq');
UPDATE test1 SET id = nextval('test_id_seq');
繰り返しますが、最近のバージョンのPostgresでは、これは上記の単一コマンドとほぼ同等です。
関連
-
[解決済み] PostgreSQLのCASE ... 複数条件付きEND
-
[解決済み] PostgreSQLの "DESCRIBE TABLE"
-
[解決済み] PostgreSQL コマンドラインユーティリティ: psql を終了する方法
-
[解決済み] PostgreSQLのユーザーパスワードを変更する方法を教えてください。
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] postgres の主キー配列が同期しなくなったときにリセットする方法は?
-
[解決済み】SQL Server、既存のテーブルに自動インクリメントの主キーを追加する。
-
[解決済み】PostgreSQLで主キーの自動インクリメントを設定する方法は?
-
[解決済み】Postgresの手動によるシーケンスの変更
-
[解決済み] 既存テーブルへのオートインクリメント主キーの挿入
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ERROR: テーブル "tablename" の更新または削除は外部キー制約に違反します。
-
[解決済み] PostgreSQLのCASE ... 複数条件付きEND
-
[解決済み] postgresqlのポートの混乱 5433 or 5432?
-
[解決済み】CASCADE DELETEを一度だけ実行する
-
[解決済み】Postgresのインストール時に入力したパスワードを忘れてしまいました。
-
[解決済み】ubuntuでpostgresqlを徹底的にパージして再インストールする方法とは?終了
-
[解決済み】データを失うことなく、PostgreSQLをバージョン9.6からバージョン10.1にアップグレードする方法は?[クローズド]
-
[解決済み】PostgreSQLでタイムゾーンがある場合とない場合のタイムスタンプの違いについて
-
[解決済み】PostgreSQLでUTCの現在時刻をデフォルト値として使用する。
-
[解決済み] Postgresの既存のカラムに'serial'を追加する