Klian Klian - 3 months ago 9
MySQL Question

MySQL incorrect default value

I'm getting this error when I execute this query:

SQLSTATE[HY000]: General error: 1366 Incorrect decimal value: '' for column 'taxes' at row 1 (SQL: insert into `delivery_note_elements` (`delivery_note_id`, `name`, `quantity`, `unit`, `taxes`, `discount`, `total`, `updated_at`, `created_at`) values (1344, x, 1, 1, , , 1, 2016-08-05 10:57:12, 2016-08-05 10:57:12))


I've read about STRICT_TRANS_TABLES mysql mode, but I've disabled it, restarted MySQL and the error persists.

mysql -u root -p -e "select @@sql_mode"

+------------+
| @@sql_mode |
+------------+
| |
+------------+


Any idea ?

Thanks!

Answer

This is what seems to be your SQL

INSERT INTO `delivery_note_elements` (
               `delivery_note_id`, 
               `name`,               
               `quantity`, 
               `unit`, 
               `taxes`, 
               `discount`, 
               `total`, 
               `updated_at`, 
               `created_at`
             ) 
      VALUES (
               1344,   # delivery_note_id
               x,      # name
               1,      # quantity
               1,      # unit
               ,       # taxes <---- no value here
               ,       # discount <---- no value here
               1,      # total
               2016-08-05 10:57:12,   # updated_at
               2016-08-05 10:57:12    # created_at
             )

The error says your taxes value is wrong. Taxes is you 5th value. Look at the values. There are two commas directly in sequence without a value in between at that position. That is your error. Your table schema (CREATE TABLE) does not seem to allow NULL values here.

Comments