title: mysql can not insert because no default value?
body: <p>I have two tables with exactly the same schema.  I can insert into one table but not another.  The one that fails complains about no default value.  Here's my create statement for the table</p>
  
  <pre><code>CREATE TABLE `t_product` (
    `product_id` varchar(10) NOT NULL,
    `prod_name` varchar(150) DEFAULT NULL,
    `price` decimal(6,2) NOT NULL,
    `prod_date` date NOT NULL,
    `prod_meta` varchar(250) DEFAULT NULL,
    `prod_key` varchar(250) DEFAULT NULL,
    `prod_desc` varchar(150) DEFAULT NULL,
    `prod_code` varchar(12) DEFAULT NULL,
    `prod_price` decimal(6,2) NOT NULL,
    `prod_on_promo` tinyint(1) unsigned NOT NULL,
    `prod_promo_sdate` date DEFAULT NULL,
    `prod_promo_edate` date DEFAULT NULL,
    `prod_promo_price` decimal(6,2) NOT NULL,
    `prod_discountable` tinyint(1) unsigned NOT NULL,
    `prod_on_hold` tinyint(1) unsigned NOT NULL,
    `prod_note` varchar(150) DEFAULT NULL,
    `prod_alter` varchar(150) DEFAULT NULL,
    `prod_extdesc` text,
    `prod_img` varchar(5) NOT NULL,
    `prod_min_qty` smallint(6) unsigned NOT NULL,
    `prod_recent` tinyint(1) unsigned NOT NULL,
    `prod_name_url` varchar(150) NOT NULL,
    `upc_code` varchar(50) DEFAULT NULL,
    PRIMARY KEY (`product_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1
  </code></pre>
  
  <p>When I run this statement in database1, it successfully inserts:</p>
  
  <pre><code>insert into t_product (product_id) values ('jlaihello');
  </code></pre>
  
  <p>When I run this exact statement in database2, I get the error:</p>
  
  <pre><code>ERROR 1364 (HY000): Field 'price' doesn't have a default value
  </code></pre>
  
  <p>Why is this error happening only in database2?  As far as I can tell, the difference between database1 and database2 are:</p>
  
  <p>database1 uses mysql  Ver 14.14 Distrib 5.5.53, for debian-linux-gnu (i686) using readline 6.3</p>
  
  <p>and </p>
  
  <p>database2 uses mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper</p>
  
  <p>How do I make database2 behave like database1?</p>
  
  <p>EDIT
  There are hundreds of tables affected by this. Basically we're moving a database over to a new server. And I did a mysqldump from db1, and  imported into db2. t_product is just ONE of the tables affected by this. I'd like to avoid manually modifying the schema for the hundreds of tables.  I prefer a "simple switch" that will make db2 behave like db1.</p>