sql >> Database >  >> RDS >> Mysql

Wat is deze fout? Databasequery mislukt:gegevens afgekapt voor kolom 'column_name' in rij 1

'' en null zijn niet hetzelfde. als uw mysql-server zich in de strikte modus bevindt, zal deze weigeren de invoeging uit te voeren omdat u ongeldige gegevens voor de kolom hebt doorgegeven. zonder strikte modus geeft het een waarschuwing.

mysql> create table a (a float not null);
Query OK, 0 rows affected (0.11 sec)

mysql> insert a values ('');
Query OK, 1 row affected, 1 warning (0.05 sec)

mysql> show warnings;
+---------+------+----------------------------------------+
| Level   | Code | Message                                |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)

mysql> set sql_mode = 'STRICT_ALL_TABLES';
Query OK, 0 rows affected (0.02 sec)

mysql> insert a values ('');
ERROR 1265 (01000): Data truncated for column 'a' at row 1

ofwel voeg expliciete null in s, of specificeer niet eens de kolom in de insert.

wanneer je aan het updaten bent, kun je alle waarden die je hebt verzenden, omdat mysql de ongewijzigde automatisch negeert.



  1. Correcte manier om PDO-updatestatements te schrijven

  2. Psycopg2 verbruikt geheugen bij grote selectiequery's

  3. Query-optimalisatie in PostgreSQL. UITLEG Basisprincipes - Deel 2

  4. Converteer rijen naar kolommen met 'Pivot' in SQL Server