以前はMySQLでデータベースを持っていました。その中にtrace
というテーブルがありました。私たちは長い間、データベース全体を落とし、同じ名前の別のデータベースを作成しました。ここで、バックアップスクリプトからテーブルtrace
を再作成しようとしました。table already exists
となります。新しいデータベースには明らかにテーブルがありません。以前存在していたテーブルを作成しようとすると、そのエラーが発生します。存在しなかったランダムな表を作成しても問題ありません。ここでMySQLでテーブルを作成できないのはなぜですか?
は、私は、テーブルを作成するために使用していたコードです:
DROP TABLE IF EXISTS `Trace`;
CREATE TABLE `Trace` (
`TraceKey` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Trace Key',
`TableName` varchar(100) NOT NULL DEFAULT '' COMMENT 'Table Name',
`RecordKey` int(10) NOT NULL,
`Action` varchar(100) NOT NULL DEFAULT '',
`ActionTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Time Stamp',
`UserName` varchar(100) NOT NULL DEFAULT '' COMMENT 'UserName',
PRIMARY KEY (`TraceKey`)
) ENGINE=InnoDB AUTO_INCREMENT=6735 DEFAULT CHARSET=latin1;
エラー:
Table 'trace' already exists
私たちは約20のテーブルを持っていた(トレースは多くの一つであった)とのたくさんがありましたそれが助けば外部キー。しかし、明らかにDBを落として再作成しました。
UPDATEテストでは
、私はこれを試してみましたが、それはこのように再びそのテーブルを削除し、それを試した後、しかし
CREATE TABLE trace (id INT,data VARCHAR(100));
ワークス:「それはdoesnの
CREATE TABLE Trace (id INT,data VARCHAR(100));
私はtrace already exists
エラーが発生します。
違いは大文字小文字ですか?
UPDATE 2
これは間違いなく小文字の問題で対大文字です。テーブル名をTrace
からtrace
に変更することは、古いスクリプトを使用しても機能します。
この理由は何ですか?
「SHOW TABLES」とは何ですか?テーブルには 'trace 'が出力されていますか? –
'SHOW TABLES'が空白になります。 – cbmeeks
これは実際にプログラミングに関係していません。つまり、SQLが正しく、問題ではありません。この問題はサーバーの障害またはデータベース管理者に問い合わせることをお勧めします。 –