![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
"Bawie" sie wlasnie skryptem typerow Prediction League i juz na samym poczatku, podczas instalacji i konfiguracji bazy (MySql) mam juz maly problem. Skrypt instalacyjny tworzy baze a nastepnie tabele potrzebne do dzialania skryptu. Baza tworzy sie bez problemu. Problem pojawil sie przy tworzeniu tabel. Z tego co zauwazylem z tabela, w ktorej primary key nie jest auto_increment nie ma problemu - tworzy sie. Lecz gdy primary key jest auto_increment pojawia sie nastepujacy error: Query failed: create table pl.pluserdata (lid int not null , userid int not null auto_increment, username varchar(32) not null , password varchar(40), email varchar(60), icon varchar(128), lang varchar(32), usertype smallint, dflths smallint default 0, dfltas smallint default 0, since DATE, isauto enum('Y','N') default 'N', primary key (lid, userid)); Incorrect table definition; there can be only one auto column and it must be defined as a key Ponizej kod, ktory tworzy tabele, ktorej blad widnieje powyzej:
A ponizej fragment, ktory nie wywala bleu i poprawnie tworzy tabele:
Co jest nie tak. Zaznaczam, ze nic sam nie kombinowale - jest to fragment oryginalnego skryptu tworzacego tabele... Pozdrawiam Darth -------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no chyba wyraźnie ci napisalo:
Cytat Incorrect table definition; there can be only one auto column and it must be defined as a key to co jest autoincrementem musi byc kluczem glownym. u ciebie tak nie jest. ty tworzysz taki klucz glowny:(lid, userid) -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tzn, ze jesli ktores pole jest auto_increment to moze byc tylko 1 primary key?
Darth -------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
tak. wkoncu autoincrement jednoznacznie definiuje rekord
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
No mam dylemat... Jak juz pisalem zmieniam oryginalny skrypt a tam wlasnie mimo auto_increment sa 2 primary key... Boje sie, ze jesli usune jednen z nich (w tym przypadku lid) cos przestanie dzialac... Czy jest na to jakas rada?
-------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Ale już Ci to napisał nospar że nie można w obrębie jednej tabeli uzyć 2 razy primary key.
Popatrz może na foreign key albo inne klucze Tak pozatym dobrze byłoby skontaktowac się z autorem co chciał przez takie odwołanie uzyskać -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
wydaje mi sie troche dziwne robic klucz glowny z polaczenia autoincrement i innego pola.
To mowisz ze oni mieli tak sql? autoincrement i podwojny klucz? a pisali na jakiej bazce to ma chodzic i na jakiej wersji? Nie wiem czy cos ci nie napsuje usuwania jednego klucza (dalej nie wiem jakim cudem im sie udalo zalozyc dwa - byc moze oczym nie wiem), wszystko zalezy jak oni tym zarządzają poźniej w skrypcie. Cytat nie można w obrębie jednej tabeli uzyć 2 razy primary key. tego nie napisalem, czytaj uwaznie ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Skrypt powinien dzialac na php 4.0 lub nowszym i bazie MySql... przeszukiwalem rozne fora, ale nigdzie nie znalazlem informacji o tym aby ktos mial podobny problem do mojego z instalacja...
W instrukcji instalacji tegoz skryptu nie ma nawet mowy o jakichs problemach z baza i ingerencji w nia... Plik instalacyjny w pierwszej kolejnosci tworzy baze (to ok) a nastepnie tabele... te w ktorych nie ma autoincrement tworza sie bez problemu, te w ktorych jest -> wynik j/w... -------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat na php 4.0 lub nowszym i bazie MySql mi wlasnie chodzilo o wersje mysql a nie php. php do bazy nie ma nic wspolnego.zgodnie z komunikatem jaki dostajesz nie mozesz utworzyc kluacza podwojnego gdy masz autoincrement. wiec albo masz zla wersje bazy (oni robili to na innej), albo sie walneli w skrypcie sql -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
No wlasnie o wersji bazy nie ma mowy....
![]() -------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 856 Pomógł: 19 Dołączył: 30.08.2005 Skąd: 100lica Ostrzeżenie: (0%) ![]() ![]() |
Nie jesteś pewnien jaka baza czy która wersja?
-------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Bazy jestem pewien - mysql... nie mam pewnosci co do obslugiwanej wersji....
Ten post edytował darth_sidious 7.01.2007, 12:33:34 -------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
moze ty tworzysz tabele typu innoDB? bo znalazlem w manualu,ze dla MyISAM mozna tak tworzyc.
http://dev.mysql.com/doc/refman/5.1/en/exa...-increment.html Cytat For MyISAM 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. CREATE TABLE animals ( grp ENUM('fish','mammal','bird') NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id) ); i jeszcze cos z komentow: Kod AUTO_INCREMENT on a secondary column in a multiple-column index:
Specify 'type=myisam' for the table if you want to avoid getting: ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key Ref. script example from manual: CREATE TABLE animals ( grp ENUM('fish','mammal','bird') NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id) ); Does not work if your default is not MyISAM, while the script below works fine: CREATE TABLE animals ( grp ENUM('fish','mammal','bird') NOT NULL, id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (grp,id) ) type=myisam; -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
OK... przyjrze sie temu blizej... postaram sie cos pokombinowac i dam znac znac o efektach...
-------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ale co tu kombinowac? musisz dopisac na koniec sql: type=myisam; tak ja ci podalem w ostanim poscie z komentow.
Kod <?php
$query = "create table $dbname.$dbaseUserData (lid int not null , userid int not null auto_increment, username varchar($userlen) not null , password varchar($passlen), email varchar($emaillen), icon varchar($fnamelen), lang varchar(32), usertype smallint, dflths smallint default 0, dfltas smallint default 0, since DATE, isauto enum('Y','N') default 'N', primary key (lid, userid)) type=myisam"; ?> -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 66 Pomógł: 1 Dołączył: 19.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzieki
![]() Po dodaniu
Wszystko dziala.... Jeszcze raz wszystkim Wam bardzo dziekuje za pomoc ![]() Pozdrawiam Darth -------------------- Fotografia ślubna Tomaszów Mazowiecki
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 2.10.2010 Skąd: Łomża Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mógłby mi ktokolwiek pomóc gdyż mam podobny problem z tym samym skryptem z tym, że jest to nowsza wersja. Po próbie tworzenia tabeli pokazuje się taki błąd
Kod Query failed: create table fpgpl_typer.pluserdata (lid int not null , userid int not null auto_increment, username varchar(32) not null , password varchar(40), email varchar(60), icon varchar(128), lang varchar(32), usertype smallint, dflths smallint default 0, dfltas smallint default 0, since DATE, auto enum('Y','N') default 'N', primary key (lid,userid)); czyli taki sam jak u osoby która rozpoczęła temat. Teoretycznie jest rozwiązanie lecz on miał inną wersję skryptu a ja mam inną. Moje pytanie brzmi. Gdzie dodać i czy wogóle dodawać wartośćIncorrect table definition; there can be only one auto column and it must be defined as a key
jeżeli kod do tworzenia tabeli wygląda następująco
Bardzo proszę o pomoc bo nie potrafię sę sam z tym poradzić. Z góry dziękuję za pomoc. Pozdrawiam |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przeciez masz wyraźnie napisane: Moze byc tylko jeden autoincrement i musi byc kluczem głównym.
A u ciebie klucz główny sklada sie z dwóch pol: (lid,userid), a jesli uzywasz autoincrement to moze skladac sie tylko z tego jednego pola. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:06 |