powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Уникальность логина в таблице пользователей
3 сообщений из 3, страница 1 из 1
Уникальность логина в таблице пользователей
    #40053232
Elfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть таблица users. В этой таблице пользователи могут быть помечены на удаление (признак deleted = True).
Как сделать проверку на уникальность поля login для всех не помеченных на удаление записей?

Например, запись login = 'admin' и deleted = false может быть только одна.
А записей login = 'admin' и deleted = true может быть сколько угодно.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE users
(
    "ID" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),
    "login" character varying(100) COLLATE pg_catalog."default" NOT NULL,
    "firstName" character varying(100) COLLATE pg_catalog."default",
    "lastName" character varying(100) COLLATE pg_catalog."default",
    birthday timestamp without time zone,
    
    deleted boolean NOT NULL DEFAULT false,
    CONSTRAINT users_pkey PRIMARY KEY ("ID")
)
...
Рейтинг: 0 / 0
Уникальность логина в таблице пользователей
    #40053233
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elfix
Добрый день!

Есть таблица users. В этой таблице пользователи могут быть помечены на удаление (признак deleted = True).
Как сделать проверку на уникальность поля login для всех не помеченных на удаление записей?

Например, запись login = 'admin' и deleted = false может быть только одна.
А записей login = 'admin' и deleted = true может быть сколько угодно.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE users
(
    "ID" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 9223372036854775807 CACHE 1 ),
    "login" character varying(100) COLLATE pg_catalog."default" NOT NULL,
    "firstName" character varying(100) COLLATE pg_catalog."default",
    "lastName" character varying(100) COLLATE pg_catalog."default",
    birthday timestamp without time zone,
    
    deleted boolean NOT NULL DEFAULT false,
    CONSTRAINT users_pkey PRIMARY KEY ("ID")
)



create unique index users_active_login_uniq on users(login) where (deleted=false);


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Уникальность логина в таблице пользователей
    #40053271
Elfix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Уникальность логина в таблице пользователей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]