code: def create_or_replace_primary_key(self,
                                        table: str,
                                        fieldnames: Sequence[str]) -> int:
          
          # *** create_or_replace_primary_key: Uses code specific to MySQL
          sql = """
              SELECT COUNT(*)
              FROM information_schema.table_constraints
              WHERE table_name=?
              AND table_schema={}
              AND constraint_name='PRIMARY'
          """.format(self.get_current_schema_expr())
          # http://forums.mysql.com/read.php?10,114742,114748#msg-114748
          row = self.fetchone(sql, table)
          has_pk_already = True if row[0] >= 1 else False
          drop_pk_if_exists = " DROP PRIMARY KEY," if has_pk_already else ""
          fieldlist = ",".join([self.delimit(f) for f in fieldnames])
          sql = ("ALTER TABLE " + self.delimit(table) +
                 drop_pk_if_exists +
                 " ADD PRIMARY KEY(" + fieldlist + ")")
          # http://stackoverflow.com/questions/8859353
          return self.db_exec(sql)
docs: Make a primary key, or replace it if it exists.