Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: default values problem
Forum PHP.pl > Forum > Bazy danych > MySQL
Indeo
Mam problem z wartościami domyslnymi w bazie danych. Do tej pory na spotykanych przeze mnie serwerach mysql polecenie sql:
  1. INSERT INTO tabela (id,userid,item) VALUES('',2,7)

w tabeli w której pole id jest kluczem primary z autoincrement działało.
Ale teraz mam jedna instalacje mysql 5.0.24a (może jakas trzepnieta) która nie pozwoli wykonać takiego polecenia zwracając błąd że wprowadzana wartość dla pola id lezy poza zakresem. Podobnie np. z wartością '' (zerowy ciag znaków) wprowadzaną do pola typu date (0000-00-00) - nie pozwala wprowadzic takiej wartości - dotychczas wszystkie serwery zapisywały ja jako 0000-00-00

Kilka aplikacji przerobiłem, ale teraz nie mam czasu i nie chce mi sie grzebać od góry do dołu po wszystkich aplikacjach przenoszonych na nowy serwer.


Pytanie - czy za to odpowiada moze jakies ustawienie serwera? A może tak już zostanie? A może to poprostu jakaś a-wersja po prostu i wystarczy zainstalować nową?
kossa
Kiedy masz pole autoincrement to pisz zawsze zapytania:
Cytat
insert into tabela (userid,item) values(2,7);

pomijając pole auto inkrementowane

Łukasz
Indeo
To przykład. Na serwerach z którymi miałem do czynienia do tej pory nie było tego problemu.
Ale nie chce mi sie specjalnie przetwarzac pustej wartości czy zera do postaci akceptowalnego przez bazę ciagu "0000-00-00" . Do tej pory mogłem w takie pole wstawić nic albo zero a zapisywało sie 0000-00-00 a w chwili obecnej mam z tym problem. Podobnie z długościami pól- wczesniej jesli pole miało ograniczona długość zapisywało sie tylko tyle znaków ile sie mieściło, a teraz od razu wywala error, ze sie nie miesci. Wczesniej jesli z formularza odbierałem informacje, że jakieś pole ma miec zmieniona wartość na pusty ciag to zwyczajnie zapisywałem set pole='' a baza AUTOMATYCZNIE przypisywała taka wartość albo wartość domyslną jeśli ta nie jest akceptowalna, a teraz mam dziesiątki komunikatów, że pole jakies tam nie obsługuje takiej wartości. Szczególnie wkurzające jest to w polach liczbowych - bo pustej wartości baza nie chce przyjąć a sama nie domysla sie żeby wpisac wartość domyslną np 0. Dlatego na szybciocha pozamieniałem pola int na varchar i spoko tylko że szkoda wydajności.
I własnie o to automatyczne wstawianie domyslnych wartości przy np pustych wartościach mi chodzi.
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.