![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
witam, chciałem nadać do drugiej kolumny w tabeli pole auto_increment, jednak wyskakuje mi błąd ze tylko jedna kolumna może mieć auto_increment i musi to być kolumna z kluczem głównym. Potrzebowałem tego do sortowania, tzn. chciałem zeby uzytkownik mogł dowolnie manipulować danymi z bazy (zdjeciami) i chciałem stworzyć dodatkową pozycję, numeryczną, po której odbywało by się sortowanie (ORDER BY) i nastepnie wyswietlanie. Problem z tym auto_increment, ponieważ nie chce do kazdego pola ręcznie przypisywać pozycji, chciałbym zeby to się odbywało automatycznie, ewentualnie jak bede chciał by jakies zdjecie było wyzej w pozycjach wyswietlania to zmienie wartosc sortowanego pola.
Czy jest jakis mechanizm poza auto_increment, który wstawi mi automatycznie po kolei wartość do bazy.. i umozliwi w razie koniecznosci wprowadzanie ręczne |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zgaduję, że masz silnik InnoDB, niestety więcej niż jedno pole autoincrement jest tolerowane tylko w silnikach MyISAM i BDB:
Cytat For MyISAM and BDB tables you can specify AUTO_INCREMENT on a secondary column in a multiple-column index. In this case, the generated value for the AUTO_INCREMENT column is calculated as MAX(auto_increment_column) + 1 WHERE prefix=given-prefix. This is useful when you want to put data into ordered groups. [za: http://dev.mysql.com/doc/refman/5.0/en/exa...-increment.html ] Cytat jednak wyskakuje mi błąd Możesz podać jego zawartość ![]() Cytat Czy jest jakis mechanizm poza auto_increment, który wstawi mi automatycznie po kolei wartość do bazy Jest i nazywa się trigger -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Zgaduję, że masz silnik InnoDB, niestety więcej niż jedno pole autoincrement jest tolerowane tylko w silnikach MyISAM i BDB: A próbowałeś? ![]() To co przytaczasz w manualu, znaczy tyle, że w MyISAM i BDB, pole AUTO_INCREMENT może być drugą kolumną klucza głównego. Numerowanie wtedy odbywa się indywidualnie dla każdej wartości pierwszej kolumny PK.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat W żadnym znanym mi silniku nie możesz mieć więcej niż jednego pola AUTO_INCREMENT @Mchl: Też mi się tak wydawało, dopóki źle nie zinterpretowałem manuala ![]() -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:36 |