次の文には適用されません:PostgreSQLのUNIQUE制約は、ドッカーコンテナ
CREATE TABLE IF NOT EXISTS users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(100) NOT NULL,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
address VARCHAR(255) NOT NULL,
phone_number VARCHAR(20) NOT NULL
);
はUNIQUE
制約を持っているusername
の原因ではありません。
my_db=# \d users
Table "public.users"
Column | Type | Modifiers
--------------+------------------------+----------------------------------------------------
id | integer | not null default nextval('users_id_seq'::regclass)
username | character varying(50) | not null
password | character varying(100) | not null
first_name | character varying(50) | not null
last_name | character varying(50) | not null
address | character varying(255) | not null
phone_number | character varying(20) | not null
Indexes:
"users_pkey" PRIMARY KEY, btree (id)
私はドキュメントのUNIQUE
に何らかの制限を発見していない質問
。私は何が欠けていますか?
コンテキスト
PostgreSQLが公式PostgreSQL Docker container
がここにあります。おそらく、 'CREATE TABLE IF NOT EXISTS'が干渉し、あなたは古いバージョンを持っていたでしょうか? – wildplasser
@wildplasserそれは問題ではありません。しかし、それは私が私のpostgresドッカーのコンテナ_を__rebuildする必要があると思うと思って、追加された制約を見ました。これは私が行った変更(新しい 'UNIQUE'制約)で新しいイメージを作成します。単にコンテナを停止して再実行しても、既存のイメージに変更は適用されませんでした。あなたが投稿したら正式な回答を受け入れるだろう。そしてありがとう。 – sargas
私のために働く。私の仮説は、テーブルが存在するため(固有の制約なしで)コマンドが実行されていないということです。 – dmg