[TC] MySQL: связать два ключа
Vande omentaina, Tiflocomp!
Вот такой вопрос.
Необходимо, чтобы в таблице два ключа могли иметь взаимно уникальные
значения. то есть: если одно поле имеет значение 19, а второе, скажем,
3, то нужно, чтобы вторая такая строка (первое поле 19, второе 3)
просто не записалась бы.
Можно ли это как-то сделать?
Спасибо!
Здравствуйте, Anarendil.
Вы писали 12 сентября 2009 г., 1:22:08:
И Вам -- алейкум асалам.
Кажется, то, что Вам нужно, называется составной (или многостолбцовый)
индекс. Он может включать несколько полей. При этом он не обязан быть
праймари, но может быть уникальным. Пример:
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY name (last_name,first_name));
Этот пример не позволяет ввести в таблицу одного человека два раза
(человека с совпадающими именем и фамилией). Из этого примера, кстати
сказать, видно, что подобные ограничители надо использовать с
осторожностью, мало ли тёзок на свете, а мы всего лишь хотели
запретить повторную регистрацию. :-)