title: MySQL: Using an Integer with Auto Increment as primary key - should I declare it as unsigned?
body: <p>When creating a table, I often use an <code>INTEGER</code> column with <code>AUTO_INCREMENT</code> as primary key (surrogate key), like so:</p>
  
  <pre><code>CREATE TABLE 'my_table' (
      user_id INTEGER AUTO_INCREMENT PRIMARY KEY,
      […]
  );
  </code></pre>
  
  <p>(Note that the ellipsis is only there to focus the example on whats important.)</p>
  
  <p>Now I've read that <code>INTEGER</code> columns can hold an integer from -2,147,483,648 to 2,147,483,647 and from 0 to 4,294,967,295 when unsigned.</p>
  
  <p>Since <code>user_id</code> will always be unsigned (MySQL starts counting from 0 if I am not mistaken), would it make sense to explicitly mark this column as <code>UNSIGNED</code> to allow more users stored in that table (4,294,967,295 instead of 2,147,483,647)?</p>