1. ホーム
  2. mysql

[解決済み] Mysql 1050 エラー "テーブルはすでに存在しています" 実際には存在しないのに。

2022-02-15 03:27:38

質問

このテーブルを追加しています。

CREATE TABLE contenttype (
        contenttypeid INT UNSIGNED NOT NULL AUTO_INCREMENT,
        class VARBINARY(50) NOT NULL,
        packageid INT UNSIGNED NOT NULL,
        canplace ENUM('0','1') NOT NULL DEFAULT '0',
        cansearch ENUM('0','1') NOT NULL DEFAULT '0',
        cantag ENUM('0','1') DEFAULT '0',
        canattach ENUM('0','1') DEFAULT '0',
        isaggregator ENUM('0', '1') NOT NULL DEFAULT '0',
        PRIMARY KEY (contenttypeid),
        UNIQUE KEY packageclass (packageid, class)
);

そして、1050 "table already exists"が表示されます。

しかし、テーブルが存在しません。何かアイデアはありますか?

EDIT: もっと詳しく......みんな信じてくれないみたいだから :)

DESCRIBE contenttype

の収量になります。

<ブロッククオート

1146 - テーブル 'gunzfact_vbforumdb.contenttype' は存在しません。

そして

CREATE TABLE gunzfact_vbforumdb.contenttype(
contenttypeid INT UNSIGNED NOT NULL AUTO_INCREMENT ,
class VARBINARY( 50 ) NOT NULL ,
packageid INT UNSIGNED NOT NULL ,
canplace ENUM( '0', '1' ) NOT NULL DEFAULT '0',
cansearch ENUM( '0', '1' ) NOT NULL DEFAULT '0',
cantag ENUM( '0', '1' ) DEFAULT '0',
canattach ENUM( '0', '1' ) DEFAULT '0',
isaggregator ENUM( '0', '1' ) NOT NULL DEFAULT '0',
PRIMARY KEY ( contenttypeid ) ,

収量です。

<ブロッククオート

1050 - テーブル 'contenttype' はすでに存在します。

解決方法は?

をお持ちのようですね。 シュレーディンガーの表 ...

今真剣に、あなたはおそらく壊れたテーブルを持っています。試してみてください。

  • DROP TABLE IF EXISTS contenttype
  • REPAIR TABLE contenttype
  • 十分なパーミッションがある場合は、データファイルを削除してください(/mysql/data/db_name にあります)。