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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 17:25   #1
Potrashitel
 
Регистрация: 01.09.2009
Сообщений: 9
По умолчанию Query

Добрый день всем! У меня проблема,точнее вопрос, скажите пожалуйста как мне исправить:

У меня есть запрос

Update Phone
set Ник="BeH9I"
where Имя="Baguk"

Он присваивает Вадику кликуху, но дело в том что у меня 2 Вадика, а присвоить надо кликуху только первому.
Как это сделать?
Potrashitel вне форума Ответить с цитированием
Старый 25.09.2009, 17:31   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

завести праймари кей в этой таблице и обращаться к записям по нему
soleil@mmc вне форума Ответить с цитированием
Старый 25.09.2009, 22:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

soleil@mmc, +1000

могу только добавить, а КАК, по Вашему, СУБД при выполнении ЗАПРОСА отличит первого Вадика от второго?!!!
Так что послушайте мнение умного человека и добавьте primary key в таблицу, как того требуют правила проектирования СУБД!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2009, 12:32   #4
Potrashitel
 
Регистрация: 01.09.2009
Сообщений: 9
По умолчанию

Не совсем то,ключ я мог бы добавить,но мне очень интересно как сделать без ключа если это возможно.
Potrashitel вне форума Ответить с цитированием
Старый 26.09.2009, 13:16   #5
Rekky
Форумчанин
 
Аватар для Rekky
 
Регистрация: 14.01.2009
Сообщений: 312
По умолчанию

и чем же вам так ключи не угадили? А уникальное поле здесь необходимо:P
Никому не поставить нас на колени! Мы лежали и будем лежать!
Rekky вне форума Ответить с цитированием
Старый 26.09.2009, 14:10   #6
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

ну если ключи не подходят - вариант один: добавить в условие еще какое-то поле (напр: фамилию)
Код:
Update Phone
set Ник="BeH9I"
where Имя="Baguk"
and Фам="Иванов"
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 26.09.2009, 15:31   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Yurk@, об этом выше уже говорилось.
Если есть две записи, и они НЕ ОТЛИЧАЮТСЯ НИ ОДНИМ аттрибутом (т.е. все поля у них одинаково заполнены), то через стандартный SQL UPDATE НЕВОЗМОЖНО изменить значение одного из аттрибутов, не затронув другие. (конечно, в некоторых СУБД можно попытаться прицепиться к номеру строки, типа rownum..., но, честно говоря, я сходу не готов написать такой код...)

короче, если пользоваться SQL, так надо правильно проектировать БД, или не удивляться, что стандартные инструкции работают не так, как хочется..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.09.2009, 18:03   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
ну если ключи не подходят - вариант один: добавить в условие еще какое-то поле (напр: фамилию)
Код:
Update Phone
set Ник="BeH9I"
where Имя="Baguk"
and Фам="Иванов"
а если полные тезки?
а если кроме полных тезок еще и день рождения совпал?
а если просто наплодили дублей одного и того же клиента?
а если несколько дублей одного клиента и его же полный тезка?

нужен уникальный идентификатор
soleil@mmc вне форума Ответить с цитированием
Старый 26.09.2009, 18:14   #9
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Serge_Bliznykov,
Цитата:
Yurk@, об этом выше уже говорилось.
что-то я не нашел, где бы говорилось о дополнительном условии ...

soleil@mmc,
Цитата:
а если полные тезки?
а если кроме полных тезок еще и день рождения совпал?
а если просто наплодили дублей одного и того же клиента?
а если несколько дублей одного клиента и его же полный тезка?
да я же не против уникального ключа, я только "ЗА" .... но ведь автору такая идея не подходит ...
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 26.09.2009, 22:38   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Yurk@
да я же не против уникального ключа, я только "ЗА" .... но ведь автору такая идея не подходит ...
Yurk@, а мы тоже ничего против Ваших слов не имеем

А то, что автор против уникального ключа, так это просто потому, что, имхо, опыта/знаний маловато (Potrashitel, только без обид...)
Он сам ещё не понимает, от чего отказывается...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БД работа с Query Luna_13 БД в Delphi 4 20.09.2008 22:16
Query artemavd БД в Delphi 1 24.08.2008 10:34
QUERY werser Помощь студентам 2 10.06.2008 19:13
Query mma БД в Delphi 5 17.02.2008 22:11