![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 3.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki problem, chciałem stworzyć tabelę z dwiema kolumnami loginem i hasłem bez żadnej numeracji typu user_id autoincrementowanej. No więc za pomocą PHPMyAdmina spróbowałem utworzyć tabelę z polami login i hasło gdzie login będzie UNIQUE, jednak wywala mi błędy i nie wiem co robię źle.. tak więc wychodzi coś takiego: [sql:1:66ef2e0ab8] CREATE TABLE `nauczyciel` ( `login` TEXT NOT NULL , `haslo` TEXT NOT NULL , UNIQUE (`login` ) ) [/sql:1:66ef2e0ab8] MySQL zwrócił komunikat: #1170 - BLOB column 'login' used in key specification without a key length Pomyślałem, że chodzi o to, że pole typu UNIQUE powinno mieć określoną długość więc zrobiłem tak: [sql:1:66ef2e0ab8] CREATE TABLE `nauczyciel` ( `login` TEXT( 15 ) NOT NULL , `haslo` TEXT NOT NULL , UNIQUE (`login` ) ) [/sql:1:66ef2e0ab8] MySQL zwrócił komunikat: #1064 - Something is wrong in your syntax obok '(15) NOT NULL, `haslo` TEXT NOT NULL, UNIQUE (`login`))' w linii 1 No i nie wiem dlaczego nie mogę utworzyć takiej prostej tabeli. Jeśli zamiast UNIQUE dam PRIMARY to jest to samo... a jeśli zrezygnuję z tego aby pole login było unikalne to oczywiście tabela tworzy się bez problemu. Dlaczego login nie może być polem typu UNIQUE? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
jeśłi definiujesz długość to:[sql:1:18bb7c28f0]CREATE TABLE `nauczyciel` (
`login` CHAR( 15 ) NOT NULL , `haslo` CHAR( 32 ) NOT NULL , UNIQUE (`login` ) )[/sql:1:18bb7c28f0]hasło kodowane md5() to dokładnie 32 znaki. Pole typu text dla takich danych to jazda z armata na muchę. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 3.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
nie wpisywałem ręcznie definicji długości pola, tylko robiłem to za pomocą PHPMyAdmina dlatego byłem pewien, że zapytanie jest skonstruowane poprawnie, przetestuję to w domu, czyli co chodziło o to, że mam pole typu text a nie char przy definiowaniu długości? Bo Ty Scaner to zauwazyłem nie zawsze odpowiadasz na pytanie tylko piszesz o czymś innym... nie pytałem się o definicję długości... Moje pytanie brzmiało dlaczego wyskakuje mi błąd przy zapytaniu tym pierwszym gdzie nie ma definicji długości? Pole login typu TEXT, pole hasło typu TEXT i chcę żeby login był UNIQUE a wyskakuje błąd... z jakiego powodu? Wyskakiwanie z armatą na muchę jest jak najbardziej w moim stylu, lubię być pewny poza tym skąd wiesz, że będę kodował md5 ? Ponawiam pytanie: dlaczego wyskakuje error? Czy ktoś wie? Pole typu TEXTowego przecież może być UNIQUE niezależnie od długośći... o co tu biega?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Moje odpowiedzi żadko kiedy mają na celu bezmyślne podanie rozwiązania. Mają zmuszać do myślenia.
1 problem: tak, nie jest podana długość pola. 2 problem: nie można określić długości pola typu TEXT, BLOB i podobnych. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 3.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz ja lubię myśleć ale nie bezmyślnie
![]() Dzięki bardzo, w domu sprawdzę i iak masz rację (a pewnie masz) one point4u |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:09 |