Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 23.01.2015 Ostrzeżenie: (0%)
|
Cześć,
Podczas wkładania danych do bazy natrafiłem na pewien problemik. W wersji 5.5 MySQL'a jak wkładam rekord z złą wartością albo nawet bez niej to MySQL wrzucał domyślną wartość dla tej kolumny, czyli "0". Tak samo w przypadku kolumn z typem "date", wrzucał domyślnie "0000-00-00".
Jeśli robiłem następujące zapytanie:
To tworzył nowy rekord z uzupełnionymi tymi dwoma kolumnami. W przypadku kolumn z typem "datetime" dawał "0000-00-00 00:00:00", tymi z typem "int" dawał "0". Było fajnie, aż do czasu jak przerzuciłem się na MySQL 5.7. Teraz te same zapytanie z włożeniem nowych danych do tej samej tabeli zaczęło zwracać błąd "incorrect value" i nie tworzy nowych rekordów, a chciałbym by kolumna z "niepoprawną" wartością zmieniała się na domyślną wartość dla tego typu kolumny jak miało to miejsce w wersji 5.5. Pytałem googla, niestety jedyne co udało mi się wykopać to "strict-mode" i efektu niestety za bardzo nie udało mi się żadnego osiągnąć. W przypadku "strict-mode" jedyne co zmieniłem to możliwość wpisania "0000-00-00 00:00:00" do kolumn z typem "datetime", a to jeszcze nie to co chciałem. TL;DR Kolumny z wartościami pustymi oraz niepoprawnymi mają zmieniać wartość na domyślną(minimalną?) dla danego typu. Pozdrawiam. Edit1: Myślałem też na dokładaniu do każdego pola ręcznie "DEFAULT", ale nie będzie miało to efektu w przypadku złych wartości. Edit2: Udało mi się! (IMG:style_emoticons/default/biggrin.gif) Ustawiłem
I jest jak chciałem. Piszę, może komuś się to przyda. Ten post edytował TheVVaS 9.09.2017, 21:50:14 |
|
|
|
TheVVaS [MySQL]Domyślna wartość dla kolumny w przypadku "incorrect value" 9.09.2017, 19:52:33
viking Tylko wiesz że bazujesz całkowicie na błędach? W t... 10.09.2017, 04:54:43
Pyton_000 No to jeszcze wyłącz wszystkie błędy w PHP i będzi... 10.09.2017, 14:07:53 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 02:18 |