title: MySQL CURRENT_TIMESTAMP field updates on every update
body: <p>The best way to explain this problem is with an example. </p>
  
  <h2>I have a table:</h2>
  
  <pre><code>CREATE TABLE `example` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `data` varchar(255) DEFAULT NULL,
    `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updated` datetime DEFAULT NULL,
    PRIMARY KEY (`id`)
  ) ENGINE=MyISAM DEFAULT CHARSET=utf8
  </code></pre>
  
  <p>Result:</p>
  
  <pre>
     id  |  data  |       created       |       updated
   (NULL)| (NULL) |       (NULL)        |       (NULL)
  </pre>
  
  <h2>Then I insert some data:</h2>
  
  <pre><code>INSERT INTO example (
    `data`
  ) VALUES (
    'abc123'
  )
  </code></pre>
  
  <p>Result:</p>
  
  <pre>
    id  |  data  |       created       |       updated
     1  | abc123 | 2013-01-16 13:12:16 |       (NULL)
  </pre>
  
  <h2>And then I update</h2>
  
  <pre><code>UPDATE example SET 
    `data` = 'def456',
    `updated` = NOW()
  WHERE id = 1
  </code></pre>
  
  <p>Result:</p>
  
  <pre>
    id  |  data  |       created       |       updated
     1  | def456 | 2013-01-16 13:16:24 | 2013-01-16 13:14:26
  </pre>
  
  <p><strong>The problem:</strong> Notice how the <code>created</code> field also updates and has a slightly different time to correctly saved updated field. I have set up this example table and others similarly on the same database without this problem, so I'm completely baffled by it.</p>