![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 30.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Mam taką tabelę: fileID userUD uniqueFileID originalFileName Są w niej jeszcze inne pola, ale one są nieistotne. Po stronie aplikacji wykonuję następujące zapytanie dodające plik do bazy danych:
Chciałbym teraz po stronie bazy danych dokonać update tego rekordu, wykonując najpierw złączenia wartosci z pól fileID, userID oraz originalFileName, następnie wykonać na tym złączonym ciągu kodowanie SHA1 i tą wartość zapisać w polu uniqueFileID. Jak to zrobić? Coś zrobiłem, ale nie działa. Poniżej kod triggera i procedury;
Po wywołaniu INSERT dostaję błąd 1442. Jak to zrobić poprawnie? Ten post edytował busterek 1.12.2013, 11:24:37 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 30.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Hmmm. Generalnie działa. Ale wynika mi z tego, że pole fileID nie mogę mieć ustawionego na auto_increment, tylko obsługiwać je ręcznie.A może się mylę?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
A może byś sprawdził... W końcu to Twój problem...
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 30.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że sprawdziłem. Wynik jest taki, że to NEW.fileID jest puste. Stąd moje pytanie.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Może dlatego, że to BEFORE. Musi byc BEFORE aby modyfikowa NEW (tak mi się wydaje). Ale myślałem, że już wtedy będzie miał ID... Cóż to MySQL (ja go nie lubię)....A na dodatek w triggerze nie możesz modyfikowac tabeli (UPDATE, DELETE, INSERT), która powoduje wywołanie triggera (niekoniecznie nawet tej, której trigger dotyczy). Takie są ograniczenia MySQL. Daltego na nim nie robię zaawansowanych aplikacji.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 30.07.2006 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
W sumie to żaden kłopot. Będę po prostu ręcznie wstawiał fileID z poziomu skryptu. Wtedy NEW.fileID powinno już być. Będę testował. Dzięki. Wielkie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 00:14 |