2014-01-09 5 views
0

У меня есть таблица клиентов, и каждый клиент имеет таблицу разделов со следующими столбцами:Уникальный SQL, в зависимости от другого поля

ID

имя

ClientID

Is возможно ли сделать уникальное имя на основе идентификатора clientID? Например, каждый клиент может иметь раздел с именем Office, но только один для каждого клиента.

ответ

1

Если вы хотите создать так, то использовать этот запрос

CREATE TABLE clients 
(
ID int NOT NULL, 
name varchar(255) NOT NULL, 
ClientID int 
CONSTRAINT Cli_Con UNIQUE (ClientID, name) 
) 

Если вы хотите изменить, то использовать этот запрос

ALTER TABLE clients ADD CONSTRAINT Cli_Con UNIQUE (ClientID, name); 
+0

Как я связать таблицу Клиенты с таблицей Разделы , так что уникальная строка в разделах уникальна только для каждого клиента? этот скрипт влияет только на таблицу клиентов. – Ric

+0

Ya влияет только на таблицу клиентов. Можете ли вы четко указать свою проблему? –

+0

Попытайтесь улучшить мое объяснение: У меня есть 2 таблицы Клиенты и секции В таблице разделов есть все разделы всех клиентов. Таким образом, мы имеем что-то вроде: ID Имя CLIENT_ID 1 офис 13 2 офис 13 3 офис 14 то, что я хочу, что клиент с идентификатором 13 может иметь только раздел с именем офиса, для всех клиентов. , поэтому это означало бы, что будет несколько разделов с одинаковым именем, но каждый клиент будет иметь только один раздел с этим именем. – Ric

0

Создайте уникальный индекс с несколькими столбцами.

alter table clients add unique index(ClientID, name); 
Смежные вопросы