Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] bigint problem z autoincrementacją
Forum PHP.pl > Forum > Przedszkole
sir_kyllan
Witam, mam problem z wpisaniem do tabeli zmiennej typu int z autonumerowaniem poniższy kod mówi wszytsko:

Tabela
  1. CREATE TABLE `web_countries` (
  2. `countryID` bigint(20) NOT NULL AUTO_INCREMENT,
  3. `code` char(8) DEFAULT NULL,
  4. `name` char(255) DEFAULT NULL,
  5. `hits` int(16) DEFAULT NULL,
  6. PRIMARY KEY (`countryID`),
  7. UNIQUE KEY `code` (`code`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Insert:
  1. INSERT INTO web_countries VALUES ('', 'ad', 'Andorra', 0), ('', 'ae', 'United arab emirates', 0), ('', 'af', 'Afghanistan', 0);


Serwer SQL wywala błąd:
  1. ERROR 1366 (HY000): Incorrect integer value: '' FOR COLUMN 'countryID' at row 1


Dodam ze serwer MySQL jest w wersji 5.1.

Błąd mówi wszystko, zakres zmiennej jest dobry, ale błąd wywala. Dlaczego?
nospor
Cytat
Błąd mówi wszystko
Widac nie tobie... ID to liczba a ty mu podajesz ''. Od kiedy pusty tekst to liczba? Jak nie chcesz przekazac liczby to ma byc NULL
minolone
Kolego wlasnie sprawdzilem twoja baze u siebie bo nie zobaczylem zadnego problemu, dodalem sobie ja w phpmyadmin i wszystko ok, dodalem rowniez zawartosc i tez jest wszystko ok, nie wiem dlaczego ty widzisz blad, moze dodaj sobie zawartosc w phpmyadmin i porownaj z twoim zapytaniem, 

EDIT:

nospor jak mozesz to sprawdz sobie to u siebie i wsyzstko smiga jak powinno, wersja mysql 5.1.41
nospor
Cytat
nospor jak mozesz to sprawdz sobie to u siebie i wsyzstko smiga jak powinno, wersja mysql 5.1.41
Komunikat bledu jest przeciez oczywisty... to ze tobie dziala to moze byc spowodowane inna konfiguracją, ktora to pozwala na takie rzeczy, jak wstawianie pustego tekstu jako liczbe smile.gif
mortus
Spróbuj:
  1. INSERT INTO web_countries VALUES (0, 'ad', 'Andorra', 0), (0, 'ae', 'United arab emirates', 0), (0, 'af', 'Afghanistan', 0);
Tylko tutaj chyba bigint nie jest potrzebny i wystarczy zwykły int, ale to tylko sugestia.
sir_kyllan
wiem, że id to liczba ale dałem autoincrement więc myślałem, że sam sobie wstawi pomiędzy '' odpowiednią cyfrę. Czyli pominąć to wogóle o tak:

  1. INSERT INTO web_countries VALUES ('ad', 'Andorra', 0), ( 'ae', 'United arab emirates', 0), ('af', 'Afghanistan', 0);


?

mortus nie mogę zrobić jak ty piszesz bo będe miał duplikaty klucza smile.gif
nospor
nie, wyraźnie napisalem NULL

Jak chcesz pominac to musisz sprecyzowac jakich kolumn bedziesz uzywal a ty tego nie robisz.
sir_kyllan
acha, miałem podbita gamme więc nie załapałem ze to null, a nie zero biggrin.gif dzięki
mortus
To się przypatrz (program Navicat Lite - screeny):


sir_kyllan
dobra działa nie doczytałem w konsoli: Records: 3 Duplicates: 0 Warnnigs: 0 smile.gif Miałeś rację mortus, przepraszam smile.gif
mortus
Spoko, luz, ja zawsze używałem 0. Pozdrawiam smile.gif
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.