следующее заявление: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
);
не вызывает username
иметь UNIQUE
ограничение.
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 Это не проблема. Но это заставило меня подумать, что мне нужно __rebuild моего postgres docker container__, чтобы увидеть добавленные ограничения. Это создаст новое изображение с изменениями, которые я сделал (добавленное ограничение UNIQUE). Простое прекращение и повторное использование контейнера не применило мои изменения к существующему изображению. Я бы принял формальный ответ, если вы разместите его. И благодарю вас. – sargas
Работает для меня. Моя гипотеза заключается в том, что команда не выполняется, потому что таблица существует (без единственного ограничения). – dmg