SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.11.2007 17:45:46

samonenko
Участник
Зарегистрирован: 19.11.2007
Сообщений: 1

Уникольность записей в подтаблице.

Как правильно сформироапть таблицу, которая бы отвечела следующим свойствам.
1. Таблица имеет три поля F1, F2 и F3.
2. Значения в поле F1 должно быть уникальным (хорошо бы чтобы оно было ключеывм)
3. Значения в паре полей F2, F3 тоже дожны быть униальными.
4. Поля F2 и F3 ссыляются на другую таблицу как внешние ключи.

То-есть нельзя чтобы в таблциу были занесены следующие данне
F1 F2 F3
1  a  b
2  b  с
3  a  b

Сделать все три поля ключеывми нельзя, тогда в таблицу можно будет занести

F1 F2 F3
1  a  b
1  b  с

что не отвечает пункту 1.

Итак, нужна отдельно уникальность по первому полю F1 и оттельно уникальность по паре полей (F2, F3).

Как тут быть ?

Отредактированно samonenko (19.11.2007 17:57:41)

Неактивен

 

#2 19.11.2007 18:12:57

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Уникольность записей в подтаблице.

ALTER TABLE имя_таблицы ADD UNIQUE(F1);
ALTER TABLE имя_таблицы ADD UNIQUE(F2, F3);

Уникальные поля являются ключевыми, во втором случае составной ключ. Про составные ключи можно почитать обсуждения в разделе форума по оптимизации.

Неактивен

 

#3 19.11.2007 19:13:03

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Уникольность записей в подтаблице.

Использовать внешние ключи можно, только если и у дочерней, и у родительской таблицы ENGINE = InnoDB

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson