![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 5.09.2002 Skąd: Gliwice/Radomsko/Szczepocice Ostrzeżenie: (0%) ![]() ![]() |
Próbuje napisać zapytani SQL, które odczytuje z tabeli maksymalną wartość pola 'field_id', następnie zwiększa tą wartość o 1 i umieszcza ją w nowym rekordzie z innymi danymi. Wymyśliłem coś takiego:
[sql:1:d301fd5545]INSERT INTO table SET field1='jakas_wartosc', field_id=(MAX(field_id))+1[/sql:1:d301fd5545] ale ta kwerenda jest źle skonstruowana i mysql wywala mi błąd. W polu field_id mogą występować powtarzające sie wartości więc nie moge użyc auto_increment. Moze ktos wie jak to zrobić? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Szczav: a nie możesz zrobić tego dwoma zapytaniami w jednej transakcji?
[sql:1:29589b29f1]select @a:=max(field_id)+1 from tabela insert into tabela set field1='jakas_wartosc', field_id=@a[/sql:1:29589b29f1] Jabol: w MySQLu nie ma sekwencji, a ich namiastkę robi właśnie atrybut auto_increment, który wymaga by kolumna była kluczem przez co nie mógł być tu użyty (powtarzające się wartości). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 17:49 |