![]() |
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 17:02 |