Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2011, 15:16   #1
Uxas
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 10
Вопрос Проверка есть ли такая запись в таблице

Здраствуйте. Есть таблица Language_c с полями country_key, language_key.
country_key выставляется автоматически, берется из другой таблицы. Вводится только одно поле - language_key. Перед добавлением записи надо как то проверить сущетсвет ли такая запись уже или нет. Чтобы не получилось так что у одной страны 2 одинаковых языка.
Uxas вне форума Ответить с цитированием
Старый 20.02.2011, 15:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А не проще сделать поле страны уникальным а в программе обрабатывать ошибку дублирования?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.02.2011, 15:51   #3
Uxas
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 10
По умолчанию

Как я сделаю поле уникальным если в нем значения могут повторяться?

Последний раз редактировалось Uxas; 20.02.2011 в 16:05.
Uxas вне форума Ответить с цитированием
Старый 20.02.2011, 16:13   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

В Firebird/Interbase можно так сделать
Код:
alter table Language_c
add constraint Unique_Key
unique (Country_Key,Language_Key)
_Engine_ вне форума Ответить с цитированием
Старый 20.02.2011, 16:31   #5
Uxas
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
В Firebird/Interbase можно так сделать
Код:
alter table Language_c
add constraint Unique_Key
unique (Country_Key,Language_Key)
У меня в Акцессе
Uxas вне форума Ответить с цитированием
Старый 20.02.2011, 17:30   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Перед добавлением записи надо как то проверить сущетсвет ли такая запись уже или нет. Чтобы не получилось так что у одной страны 2 одинаковых языка.
ну так сделайте предварительно запрос, чтобы узнать, есть нужная запись или нет.
Примерно так:
Код:
SELECT COUNT(*) as CntRec FROM Language_c 
  WHERE country_key = ТутВашKey
     and language_key = ТутВашЯзык
если CntRec >0 — значит есть такая запись...

p.s. Хотя, логика мне не понятна, что значит - язык для страны?! А если в стране несколько официальных (государственных) языков ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2011, 19:55   #7
Uxas
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение

p.s. Хотя, логика мне не понятна, что значит - язык для страны?! А если в стране несколько официальных (государственных) языков ?
Есть таблица Country(country_key,country_name) есть таблица Language_c(country_key, language_key) и таблица Language(language_key, language_name). данные вношу только в таблицу Language_c, сделал в неи поисковое поле Language - берется поле language_name из таблицы Language по связи language_c.language_key --> language.language_key. Мне нужно чтобы нельзя было выбрать одинаковый язык в поисковом поле или просто чтобы там не отображались языки которые уже есть
Uxas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли такая программа? Voc Софт 0 29.09.2010 16:05
есть например такая таблица __avatar__ Microsoft Office Access 4 28.04.2010 19:33
Есть ли такая книга? [Pascal] White_foxSA Обсуждение статей 5 07.02.2010 00:39
DBGrid есть ли такая возможность Baharev БД в Delphi 10 28.11.2009 20:17
Есть ли в Word'е такая функция? чебургатор Microsoft Office Word 6 24.08.2009 23:07