![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Podczas insertowania danych do tabeli użytkowników wyrzuca mi następujący błąd: Kod Subquery returns more than 1 row [ INSERT INTO `users` (.........) VALUES (.....) Samo zapytanie INSERT nie posiada w sobie żadnych elementów podzapytań - ostatnio próbowałem swoich sił w budowaniu triggerów i tutaj podejrzewam, że błąd leży. W tej chwili mam zdefiniowane trzy triggery: dwie akcje przy INSERT, jedna przy DELETE.
Zastanawiam się nad tą regułką pobierania z tabeli "configuration" - czy dobrze to zrealizowałem - ogólnie na sto procent zwracany jest jeden rekord - value zwraca cyfrę - zero lub jedynkę. Gdzie może być błąd? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Masz jasno napisane: podzapytanie zwraca więcej niż 1 rekord, a pewnie do jakiegoś pola przypisujesz wartość z podzapytania. Musisz dodać LIMIT 1 do podzapytania by zwróciło maksymalnie 1 wynik.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Strzelam że to linia 15. Jest bezsensowna. I dziwię się, że w ogóle działa. Chociaż skoro to MySQL, to można się wielu niespodzianek spodziewać.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie samo w sobie zapytanie:
zwraca i tak jeden rekord - nie mam więcej wartości z identyfikatorem "EMAIL_USER_ACCOUNT_ACTIVE" - ale.. dodanie limit 1 rozwiązało problem. Jak inaczej można zapisać pobieranie z innej tabeli w triggerze? Taki przykład właściwie znalazłem w sieci. Ten post edytował wujek2009 4.11.2013, 22:18:04 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 14:47 |