postgresql - postgrSQL での主キーの使用

okwaves2024-01-24  6

この質問にはすでに答えがあります: 主キーとは何ですか

(答えは4つ)

3 年前

に閉店しました。

現在テーブルがあります:

userID | color | quantity
-------------------------

ここで、userID は主キーです。私の問題は、DB (同じ ID の項目が既に 1 つある) に挿入しようとすると、エラーが発生することです: pq: 重複したキー値が一意の制約に違反しています挿入には lib/pq パッケージで Go を使用しています。 PK を何に使用するかについて間違った考えを持っているのか、それともどのような種類のテーブルを作成する必要があるのか​​理解していないのかわかりません。



------------------------

主キーはテーブル内の単一行を一意に識別するキーであるため、一意である必要があります。テーブル内に同じ userID を持つ行がさらに必要な場合は、userID を主キーにすることはできません。

主キーとして列 (または列のグループ) を指定すると、PostgreSQL はそれに一意性制約を適用するため、テーブル内の 2 つの行がその列の内容と同じになることはあり得ません。これが、制約違反エラーが表示される理由です。r.

この問題は、行ごとに一意の値を持つ別の ID 列 (例: 自動インクリメントされたシーケンス) を追加し、それを userID の代わりに主キーにすることで解決できます。

ここでは、主キーの使用法をより深く理解できるよう、Postgres の主キーに関する詳細なチュートリアルを示します。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。