Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dwa pola AUTO_INCREMENT
Forum PHP.pl > Forum > Bazy danych
jastu
Napisałem sobie coś i najprościej byłoby dać dwa pola auto_inrement, ale się nie da.
Wtedy pierwsze pole było by PKi id obiektu a wg drugiego była by sortowana lista.
Właśnie chodzi o sortowanie... kolejny wstawiany wiersz będzie umieszczany na końcu i będzie miał kolumnę SORT o największym numerze oraz ID ostatniego rekordu +1 ... jak to można zrobić inaczej ?
Rude Dude
Zrób tabelę z relacjami i tam wstaw idy które będziesz wykorzystywał do sortowania.
kris2
dlaczego nie możesz sortować po primary key?
a skoro nie możesz to na penwo dwa pola autoinkrementacyjne tego nie zalatwią.
jastu
Pierwsze pole AI odpowiada za nadawanie objektowi jego ID (nie mogę wartości tego pola zmieniać), a drugie AI pole odpowiada za kolejność wyświetlania - wartość tego pola może być zmieniana.

Obecnie działa to tak :
Robię insert, pobieram last_insert_id() i robię update table set AI_2 = last_insert_id() where AI_1 = last_insert_id();
kris2
http://dev.mysql.com/doc/maxdb/en/6d/117c2...261/content.htm
myśle że tutaj znajdziesz rozwiazanie
jastu
Niezłe....szkoda że w mysqlu tego nie ma
http://dev.mysql.com/doc/maxdb/en/e6/0e964...b0/frameset.htm
....hostingu też znaleźć nie mogę laugh.gif haha.gif

Zostaje wyzwalacz lub update po insercie..., ale dzięki za zaangażowanie. Pzdr
kris2
używaj Postgresa, tam jest prawie wszystko smile.gif
osiris
Hmm, jesli dobrze Cie zrozumialem to mozna przy dodawaniu rekordu dla pola wg ktorego ma odbywac sie sortowanie wstawiac wartosc maks +1 np.:
  1. INSERT INTO tab (id, kol1, kol2, kol_sort) VALUES(0, 'gaga', 'tratatata', (SELECT MAX(kol_sort)+1 FROM tab))
jastu
Niestety to w MySql nie działa
Kod
MySQL Database Error: You can't specify target table 'ft_f_groups' for update in FROM clause
heaven
Mi taki kod dziala na MySQL
  1. INSERT INTO tree (child_id, parent_id, depth) VALUES (11,11, (SELECT MAX(t.depth)+1 FROM tree t))

musisz tylko zrobic aliasa dla tego drugiego zaputania u mnie "t"
wlamywacz
Podzapytania w mysql są jeśli dobrze pamiętam od wersji 4.1.11
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.