sql >> Databasteknik >  >> RDS >> Mysql

Vad är detta för fel? Databasfrågan misslyckades:data trunkerades för kolumn kolumnnamn på rad 1

'' och null är inte samma. om din mysql-server är i strikt läge, kommer den att vägra infoga eftersom du har skickat ogiltiga data för kolumnen. utan strikt läge returnerar den en varning.

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

antingen infoga explicit null s, eller ange inte ens kolumnen i infogningen.

när du uppdaterar kan du skicka alla värden du har eftersom mysql automatiskt ignorerar de oförändrade.



  1. Hur man beräknar omsättningen varje termin

  2. MySQL Connector/C++ OS X 10.9 Mavericks och XCODE 5.0.2

  3. Hur använder jag PostgreSQL JSON(B)-operatorer som innehåller ett frågetecken? via JDBC

  4. hämta ut parameter från lagrad procedur?