Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: INSERT INTO ON DUPLICATE KEY UPDATE - pola bez domyślnej wartości
Forum PHP.pl > Forum > Bazy danych > MySQL
sabat24
Zmieniłem sobie wersję MySQLa na 5.7.19 i następujący ciąg zapytań zwraca mi błąd. Czy coś się zmieniło w tym względzie od 5.5.x i 5.6.x?

1. Rozpoczynam transakcje
2. Robię zwykły insert np. dwóch nowych wierszy (dane się dodają poprawnie)
3. Po wstawieniu dla każdego wiersza otrzymuję następujące klucze główne: 64198, 64199
4. Pod koniec wrzucam zapytanie:

  1. INSERT INTO bookings (b_id,connected_booking_id,object_id) VALUES (64198,64199,'1'),(64199,64198,'1') ON DUPLICATE KEY UPDATE b_id=VALUES(b_id),connected_booking_id=VALUES(connected_booking_id),object_id=VALUES(object_id)


b_id - jest kluczem głównym, które wcześniej wstawiłem i teraz tylko robię update dwóch pól.

Zawsze działało to poprawnie, ale od wersji 5.7.19 wyrzuca mi error: Field 'b_deleted' doesn't have a default value

Co jest prawdą, ale nie ruszam tego pola, ponieważ zawsze idzie wyłącznie update. To jest jakiś nowy warning w tej wersji i nie można już w takich zapytaniach pomijać pól default?
viking
A co ma baza wstawić w pole jeśli nie podajesz wartości i nie ma domyślnej? Wcześniej pewnie ignorowałeś błędy i chociaż szły do bazy bzdury to upychała pusty string.
sabat24
Mogłaby wywalić error dopiero jak coś wstawi 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.