title: INSERT IGNORE with invalid field value actually inserts Zero
body: <p>I've in my table defined a field which is <code>NOT NULL</code>.</p>
  
  <p>If I run a query <code>INSERT IGNORE</code> with <code>null</code> values <em>it inserts a row with zero value</em> instead of just ignoring the <code>null</code> value. (And the same happens even for values having invalid data type)</p>
  
  <pre><code>CREATE TABLE all_numbers (
      Numbers INT NOT NULL,
      AssociatedNumbers INT NOT NULL
  ) ENGINE=InnoDB;
  
  INSERT IGNORE INTO all_numbers (Numbers, AssociatedNumbers)
      VALUES (1,2), (3,4), (5,6), (7,8), (null, null);
  </code></pre>
  
  <p>And output is:</p>
  
  <pre><code>Numbers AssociatedNumbers
     1          2
     3          4
     5          6
     7          8
     0          0
  </code></pre>
  
  <p>Same is the case for:</p>
  
  <pre><code>INSERT IGNORE INTO all_numbers (Numbers, AssociatedNumbers)
      VALUES (1,2), (3,4), (5,6), (7,8), ('a', 'b');
  </code></pre>
  
  <p>Any idea why is this happening, and how to make MySQL to just <strong>ignore</strong> invalid values specified in the query? (<em>Zeros instead of invalid value</em> is really undesirable!)</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>Even after I enabled <code>STRICT_ALL_TABLES</code> mode its still not working. Here are screenshots:</p>
  
  <p><a href="https://i.stack.imgur.com/0OJMa.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0OJMa.png" alt="Output of &lt;code&gt;SELECT @@GLOBAL.sql_mode;&lt;/code&gt; "></a> </p>
  
  <p><a href="https://i.stack.imgur.com/ZdPWq.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/ZdPWq.png" alt="INSERT query output"></a></p>