code: def _get_create_table_sql(self, table_name, columns, options=None):
          
          options = options or {}
  
          column_list_sql = self.get_column_declaration_list_sql(columns)
  
          if options.get("unique_constraints"):
              for name, definition in options["unique_constraints"].items():
                  column_list_sql += ", %s" % self.get_unique_constraint_declaration_sql(
                      name, definition
                  )
  
          if options.get("primary"):
              column_list_sql += ", PRIMARY KEY(%s)" % ", ".join(options["primary"])
  
          if options.get("indexes"):
              for index, definition in options["indexes"]:
                  column_list_sql += ", %s" % self.get_index_declaration_sql(
                      index, definition
                  )
  
          query = "CREATE TABLE %s (%s" % (table_name, column_list_sql)
  
          check = self.get_check_declaration_sql(columns)
          if check:
              query += ", %s" % check
  
          query += ")"
  
          sql = [query]
  
          if options.get("foreign_keys"):
              for definition in options["foreign_keys"]:
                  sql.append(self.get_create_foreign_key_sql(definition, table_name))
  
          return sql
docs: Returns the SQL used to create a table.
  
          :param table_name: The name of the table to create
          :type table_name: str
  
          :param columns: The table columns
          :type columns: dict
  
          :param options: The options
          :type options: dict
  
          :rtype: str