2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

pgAdmin 4使用時 列が追加できず、カラムに鍵マークがついた

Last updated at Posted at 2024-02-29

はじめに

pgAdmin 4を使用してPostgreSQLのテーブルにカラムを追加しようとした際に直面したトラブルに関する記事です。
テーブル作成した後、カラムに値を追加できなくなりました。

現象

bookというテーブルを作成しました。idをint,titleをchar,authorをchar,priceをint,4つのカラムを作成しました。
スクリーンショット 2024-02-29 23.10.56.png

作成したテーブルを確認して見てみると、カラムに鍵マークがつきました。
さらに画像左上の「三+」がグレーになってしまい、列が追加できませんでした。
スクリーンショット 2024-02-29 22.20.11.png

対処方法

私の場合は、サンプルのテーブルなので、一回削除し、もう一度作成し直しました。後からプライマリーキー設定する方法もあると思います。今回は省略します。
今回は、idを主キーに設定しました。Primary key?のところクリック 青くなります。
スクリーンショット 2024-02-29 22.28.21.png

結果

プライマリキーを設定した後に「三+」がグレーだったのが、黒になり、列の追加、カラムの追加できるようになりました!
スクリーンショット 2024-02-29 22.32.27.png

# 原因
公式には、下記のことが書いてあります。私の場合、「リレーショナルデータベース理論では、全てのテーブルにプライマリキーが1つ必要とされています。」これを無視して作成していたのが、原因だと思われます。

「プライマリキーの設定が推奨される理由」は、また調べて記事にしたいと思います!
コメント頂いたので、修正しました。

1つのテーブルは最大1つのプライマリキーを持つことができます。 
(一意性制約および非NULL制約には個数の制限はありません。
機能的には同じものですが、プライマリキーとして識別される制約は1つのみです。) 
リレーショナルデータベース理論では、全てのテーブルにプライマリキーが1つ必要とされています。 
この規則はPostgreSQLでは強制されませんが、たいていの場合はこれに従うことが推奨されます。

原因

公式には、下記のことが書いてあります。私の場合、主キーに対する理解不足が原因だと思われます。

主キーは文書化、および、クライアントアプリケーションの両方の面で役に立ちます。 例えば、行値の変更が可能なGUIアプリケーションが行を一意的に特定するためには、 おそらくテーブルの主キーを知る必要があります。 他にも主キーが宣言されているときにデータベースシステムがそれを利用する場面がいくつかあります。 例えば、外部キーがそのテーブルを参照するとき、主キーがデフォルトの対象列となります。
2
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?