Cannot figure out what's wrong with my schema It keep saying 

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near


Here is my Schema:

function artx_partner_schema() {
  $schema = array();

  $schema['artx_partner'] = array(
    'description' =&gt; 'The base table for artx_partner.',
    'fields' =&gt; array(
      'partner_id' =&gt; array(
        'description' =&gt; 'The primary identifier for a partnership.',
        'type' =&gt; 'serial',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
      ),
      'uid' =&gt; array(
        'description' =&gt; 'User identifier.',
        'type' =&gt; 'int',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
      ),
      'nid' =&gt; array(
        'description' =&gt; 'Node identifier.',
        'type' =&gt; 'int',
        'not null' =&gt; FALSE,
      ),
      'product_id' =&gt; array(
        'description' =&gt; 'Identifier for a product.',
        'type' =&gt; 'int',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
      ),
      'reqtime' =&gt; array(
        'description' =&gt; 'time stamp of the request',
        'type' =&gt; 'datetime:normal',
        'mysql_type' =&gt; 'datetime',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; FALSE,
      ),
      'restime' =&gt; array(
        'description' =&gt; 'time stamp of the response to request',
        'type' =&gt; 'datetime:normal',
        'mysql_type' =&gt; 'datetime',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; FALSE,
      ),
      'status' =&gt; array(
        'description' =&gt; 'the status of the request, pending(0)/AC(1)/Rej(2)',
        'type' =&gt; 'int',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
        'default' =&gt; 0,
      ),
    ),
    'primary key' =&gt; array('partner_id'),
    'unique keys' =&gt; array('unique' =&gt; array('uid', 'nid', 'product_id')),
    'foreign keys' =&gt; array(
      'owner' =&gt; array(
        'table' =&gt; 'users',
        'columns' =&gt; array('uid' =&gt; 'uid'),
      ),
      'product_display' =&gt; array(
        'table' =&gt; 'node',
        'columns' =&gt; array('nid' =&gt; 'nid'),
      ),
      'product' =&gt; array(
        'table' =&gt; 'commerce_product',
        'columns' =&gt; array('product_id' =&gt; 'product_id'),
      ),
    ),
  );

  return $schema;
}
Unsigned attribute is not supported with datetime. Following code will create table for you.

function artx_partner_schema() {
  $schema = array();
  $schema['artx_partner'] = array(
    'description' =&gt; 'The base table for artx_partner.',
    'fields' =&gt; array(
      'partner_id' =&gt; array(
        'description' =&gt; 'The primary identifier for a partnership.',
        'type' =&gt; 'serial',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
      ),
      'uid' =&gt; array(
        'description' =&gt; 'User identifier.',
        'type' =&gt; 'int',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
      ),
      'nid' =&gt; array(
        'description' =&gt; 'Node identifier.',
        'type' =&gt; 'int',
        'not null' =&gt; FALSE,
      ),
      'product_id' =&gt; array(
        'description' =&gt; 'Identifier for a product.',
        'type' =&gt; 'int',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
      ),
      'reqtime' =&gt; array(
        'description' =&gt; 'time stamp of the request',
        'type' =&gt; 'datetime:normal',
        'mysql_type' =&gt; 'datetime',
        'not null' =&gt; FALSE,
      ),
      'restime' =&gt; array(
        'description' =&gt; 'time stamp of the response to request',
        'type' =&gt; 'datetime:normal',
        'mysql_type' =&gt; 'datetime',
        'not null' =&gt; FALSE,
      ),
      'status' =&gt; array(
        'description' =&gt; 'the status of the request, pending(0)/AC(1)/Rej(2)',
        'type' =&gt; 'int',
        'unsigned' =&gt; TRUE,
        'not null' =&gt; TRUE,
        'default' =&gt; 0,
      ),
    ),
    'primary key' =&gt; array('partner_id'),
    'unique keys' =&gt; array('unique' =&gt; array('uid', 'nid', 'product_id')),
    'foreign keys' =&gt; array(
      'owner' =&gt; array(
        'table' =&gt; 'users',
        'columns' =&gt; array('uid' =&gt; 'uid'),
      ),
      'product_display' =&gt; array(
        'table' =&gt; 'node',
        'columns' =&gt; array('nid' =&gt; 'nid'),
      ),
      'product' =&gt; array(
        'table' =&gt; 'commerce_product',
        'columns' =&gt; array('product_id' =&gt; 'product_id'),
      ),
    ),
  );
  return $schema;
}