Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2009 Ostrzeżenie: (0%)
|
Hej!
Chcę podczas dodawania nowego rekordu do bazy sprawdzić od razu czy taki już nie istnieje. Mam jedną kolumnę w pełni unikalną (inną od id ;-) ) i to po niej chciałbym sprawdzać. Czy istnieje inne rozwiązanie niż SELECT i sprawdzenie ilości odpowiedzi? Pozdrawiam i proszę o pomoc, QWAK |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
no jeśli założysz uniq na to pole, to przy dodawaniu tego samego mysql ci wypluje błąd - na tej podstawie będziesz wiedział że już jest.
No a drugie rozwiązanie to select. nie wiem w czym ci on przeszkadza. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2009 Ostrzeżenie: (0%)
|
W moim przypadku będę generować zamiast 20 zapytań "tylko" 10 (IMG:style_emoticons/default/smile.gif)
Ok, dzięki za odpowiedź. |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
To dziwne masz te dodawanie ze generuje ci az 10 zapytan (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2009 Ostrzeżenie: (0%)
|
Nie dziwne (IMG:style_emoticons/default/winksmiley.jpg) Po prostu muszę dodać 10 nowych rekordów do jednej tabeli.
|
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
No chyba że tak (IMG:style_emoticons/default/winksmiley.jpg)
UNIQ wydaje się tu być właściwym rozwiązaniem. Pamiętaj tylko, by patrzeć jaki dostajesz błąd. Mysql może zwrócić ci różne błędy, nie tylko że próbujesz dodać coś co już istnieje. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 0 Dołączył: 29.04.2009 Ostrzeżenie: (0%)
|
Tak, też o tym myślałem. Jeszcze raz wielkie dzięki za pomoc.
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%)
|
|
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 36 565 Pomógł: 6315 Dołączył: 27.12.2004 |
@maly_swd rozwiązanie co zaproponowales spowoduje, ze w momencie duplikatu nie dostaniemy błędu.A chodziło o to by błąd dostać i na tej podstawie wiedzieć, że duplikat miał miejsce (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%)
|
Nospor -> faktycznie, moj blad...
Ale jak by po tym sprawdzic mysql_affected_rows - z tego co pamietam zwraca ona liczbe przetworzonych wierszy a w przypadku gdy update nie zmienil wiersza c=c (czyli nie zmienil) dostaniemy 0 - czyli ze byl duplikat:) - to teoria oczywiscie wymyslona przy kawie Ten post edytował maly_swd 31.08.2010, 09:53:38 |
|
|
|
![]() ![]() |
|
Aktualny czas: 10.06.2026 - 11:14 |