code: function createTable (model) {
      var columnSql = []
      var keySql = []
      var primaryKeySql = []
      var uniqueKeySql = []
      // create sql for columns
      _.each(model.columnNames, name => {
          // get spec
          var spec = model.columns[name]
          // create column sql
          columnSql.push(createTableColumn(model, name, spec))
          // column has index
          if (spec.index || spec.primary || spec.unique) {
              // index is primary
              if (spec.primary) {
                  primaryKeySql.push(createTablePrimaryKey(name, spec))
              }
              // index is unique
              else if (spec.unique) {
                  uniqueKeySql.push(createTableUniqueKey(name, spec))
              }
              // index is not unique
              else {
                  keySql.push(createTableKey(name, spec))
              }
          }
      })
      // require table to have at most one primary key
      assert.ok(primaryKeySql.length <= 1, model.name+': table must not have more than one primary key')
      // add any multi-column indexes
      _.each(model.indexes, (spec) => {
          // index is unique
          if (spec.unique) {
              uniqueKeySql.push(createTableUniqueKeyMulti(spec))
          }
          // index is not unique
          else {
              keySql.push(createTableKeyMulti(spec))
          }
      })
      // return create table sql
      return 'CREATE TABLE '+quoteName(model.name)+' ('
          + columnSql.concat(primaryKeySql, uniqueKeySql, keySql).join(', ')
          + ') ENGINE='+model.engine+' DEFAULT CHARSET='+model.charset
  }
docs: @function createTable
  
  generate sql for CREATE TABLE statement
  
  @param {ImmutableCoreModel} model
  
  @returns {string}
  
  @throws {Error}