Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/sql]Autowypełnianie tabeli
Forum PHP.pl > Forum > Przedszkole
wert1
Witajcie !

Mam sobie tabelkę a w niej userów i chciałbym im przypisać numer (ID)
Mam kolumne ID ale jak to zrobić ze przy dodawaniu urzytkownika skrypt przypisał mu kolejny (!) numer ID

Pozdrawiam Wert
sniezny_wilk
We właściwościach pola ustaw "auto_increment".
wert1
tez o tym myslałem ale wolę zeby to było w php tongue.gif


Ps: Zresztą wywala mi bład :
  1. Błąd
  2.  
  3. zapytanie SQL:
  4.  
  5. ALTER TABLE `oceny` CHANGE `id` `id` VARCHAR( 4 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #1063 - Incorrect column specifier for column 'id'
nowotny
No to nie "wól" tylko rób tak jak jest poprawnie... pole ID musi być typu liczbowego, nie łańcuchowego...
skowron-line
[sql]ALTER TABLE `oceny` CHANGE `id` `id` INT( 4 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT[sql]
Cezar708
Cytat(nowotny @ 17.03.2008, 16:26:21 ) *
No to nie "wól" tylko rób tak jak jest poprawnie... pole ID musi być typu liczbowego, nie łańcuchowego...



Fakt faktem integer jest najszybszy, ale to nie znaczy że musi być zawsze używany. Jeśli tabela jest mała z powodzeniem można wykorzystać VARCHAR jako klucz prywatny. Czasem bywa tak, że klucz prywatny w postaci VARCHAR jest bardzo wygodny (na przykład międzynarodowe kody lotnisk).
wert1
hmm dadal blad
  1. Błąd
  2.  
  3. zapytanie SQL:
  4.  
  5. ALTER TABLE `oceny` CHANGE `id` `id` INT( 4 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT' at line 1


zreszta ja musze miec w dwóch tabelach takie samo id
skowron-line
mysle ze zamiast CHANGE lepiej daj MODIFY
nowotny
Cytat(Cezar708 @ 17.03.2008, 16:31:28 ) *
Fakt faktem integer jest najszybszy, ale to nie znaczy że musi być zawsze używany.

Cytat(http://dev.mysql.com/doc/refman/5.0/en/create-table.html)
Some attributes do not apply to all data types. AUTO_INCREMENT applies only to integer types. DEFAULT does not apply to the BLOB or TEXT types.


Cytat(Cezar708 @ 17.03.2008, 16:31:28 ) *
Jeśli tabela jest mała z powodzeniem można wykorzystać VARCHAR jako klucz prywatny. Czasem bywa tak, że klucz prywatny w postaci VARCHAR jest bardzo wygodny (na przykład międzynarodowe kody lotnisk).

Ale my mówimy o auto_integer a nie kluczach prywatnych...

Fakt, może źle zastosowałem skrót myślowy... powinno być:
pole z atrybutem auto_increment musi być typu liczbowego, nie łańcuchowego...
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.