@Artem0071
Безработный mr. Junior

Можно ли задать уникальное поле в двух таблицах?

Добрый день!

Есть 2 таблицы:
  1. table1
    • param1_1
    • param1_2

  2. table2
    • param2_1
    • param2_2


Нужно сделать так, чтобы param1_1 и param2_1 были уникльными
Возможно ли такое устроить не проверяя каждый раз 2 таблицы?
  • Вопрос задан
  • 201 просмотр
Пригласить эксперта
Ответы на вопрос 4
rpsv
@rpsv
делай либо хорошо, либо никак
Немного странная структура.

Если они должны быть уникальными, то один из столбцов делайте внешним ключом (FOREIGN KEY) и оба столбца делайте UNIQUE.

Либо делайте такую структуру, чтобы оба столбца были в одном таблице и индекс делайте UNIQUE составной.
Ответ написан
Комментировать
EgoRusMarch
@EgoRusMarch
C++ Developer
Если ты хочешь уникальный ключ на 2 таблицы (что довольно странно), то ты можешь поставить просто ограничение на первичный ключ. Например так:
CREATE TABLE `table_1` (
`id` INT CHECK(id BETWEEN 10000 AND 49999)
);
CREATE TABLE `table_2` (
`id` INT CHECK(id BETWEEN 50000 AND 99999)
);
Ответ написан
Комментировать
@leremin
atypical programmer
А вот в PostgreSQL это легко сделать через последовательности. А так все правы, лучше саму базу переделать. Она явно нехорошая.
Ответ написан
Комментировать
@lega
"Внешний" счётчик либо в одной таблице четные в другой нечетные
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы