[解決済み] Postgresの既存のカラムに'serial'を追加する
2022-05-18 11:21:38
質問
Postgres 9.0 データベースに、整数 ID フィールド (主キー) を持つ小さなテーブル (~30 行) があり、現在 1 から始まるユニークな連続整数を含んでいますが、これは 'serial' キーワードを使用して作成されていません。
今後、このテーブルへの挿入が、このフィールドが型として 'serial' を使用して作成されたかのように動作するように、このテーブルをどのように変更すればよいでしょうか。
どのように解決するのですか?
以下のコマンドを見てください(特にコメントされたブロック)。
DROP TABLE foo;
DROP TABLE bar;
CREATE TABLE foo (a int, b text);
CREATE TABLE bar (a serial, b text);
INSERT INTO foo (a, b) SELECT i, 'foo ' || i::text FROM generate_series(1, 5) i;
INSERT INTO bar (b) SELECT 'bar ' || i::text FROM generate_series(1, 5) i;
-- blocks of commands to turn foo into bar
CREATE SEQUENCE foo_a_seq;
ALTER TABLE foo ALTER COLUMN a SET DEFAULT nextval('foo_a_seq');
ALTER TABLE foo ALTER COLUMN a SET NOT NULL;
ALTER SEQUENCE foo_a_seq OWNED BY foo.a; -- 8.2 or later
SELECT MAX(a) FROM foo;
SELECT setval('foo_a_seq', 5); -- replace 5 by SELECT MAX result
INSERT INTO foo (b) VALUES('teste');
INSERT INTO bar (b) VALUES('teste');
SELECT * FROM foo;
SELECT * FROM bar;
関連
-
Postgresqlのユーザーログインエラーの回数を制限するサンプルコード
-
Postgresqlのシーケンススキップの問題を解決する
-
PostgreSQLにおけるVACUUMコマンドの使用方法
-
[解決済み] エラーが発生しました。pgsqlをrailsで動作させようとすると、Peer authentication failed for user "postgres" と表示されます。
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み] 'ユーザー "postgres" のパスワード認証に失敗しました'
-
[解決済み】NULL列を含む一意制約の作成
-
[解決済み] Postgresqlで「挿入無視」と「重複キー更新」(SQLマージ)をエミュレートする方法は?
-
[解決済み] PostgreSQLのクエリで、整数を文字列に変換するにはどうすればよいですか?
-
[解決済み] PostgreSQL公式Dockerイメージの設定ファイルをカスタマイズする方法とは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
PostgreSQLのテーブルをパーティション分割する3つの方法
-
postgresのjsonbプロパティの利用について
-
Postgresql データベース timescaledb timescaledb 問題 大容量データテーブルをスーパーテーブルに変換すること
-
Postgresqlのデータベースにおける配列の作成と変更に関する操作
-
oracle_fdwを介してOracleデータにアクセスするためのPostgreSQLの手順
-
Postgresql+Springboot ymlの基本的な使い方
-
[解決済み] Postgres で、あるデータベースから別のデータベースにテーブルをコピーする
-
[解決済み】PostgreSQLで、既存のテーブルに自動インクリメントの主キーを追加する方法は?
-
[解決済み] Postgres / PostgreSQLのテーブルとインデックスのディスクサイズはどのように見つけるのですか?
-
[解決済み] Postgresql。条件付き一意性制約