Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> składnia zapytania
Szczav
post
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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adwol
post
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).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.09.2025 - 17:49