How to create a table during the module installation I'm trying to create a module for Drupal 7 and I need to create 3 tables and populate it. But first i need to create it.

In the file mymodule.install I have got 

function mymodule_install() {

}

function mymodule_uninstall() {

}


function myodule_schema() {
  $schema['mymodule_table'] = array(
    'description' =&gt; t('First table'),
    'fields' =&gt; array(
      'id' =&gt; array(
        'description' =&gt; t('My unique identifier'),
        'type' =&gt; 'int',
        'unsigned' =&gt; true,
        'not null' =&gt; true,
      ),
      'list' =&gt; array(
        'description' =&gt; t('list'),
        'type' =&gt; 'varchar',
        'not null' =&gt; true,
      ),
    ),
    'primary key' =&gt; array('id'),
  );
  return $schema;     
}


What am I doing wrong?
Every time I test the module, I disable it -> uninstall -> Performance clear cache -> enable it.
You're missing the length property for the varchar column ('list'). length is required so the CREATE TABLE query will fail.

From the Schema API docs:


  All parameters apart from 'type' are optional except that type 'numeric' columns must specify 'precision' and 'scale', and 'varchar' columns must specify 'length'.