プロが教えるわが家の防犯対策術!

MySQL5でアクセスの「入金」という日本語名のテーブルをインポートしました。しかしMySQLではテーブル名がバグってしまい、MySQL Command Line Clientで以下のように削除しようとしても「Unknown table 蜈・驥・」と出て削除できません。削除したいテーブルが指定できず困っています。強制的に削除する方法はないでしょうか?

set names sjis;
use データベース名;
drop tabe 入金;

A 回答 (3件)

MySQLでは、日本語の表名を使うと、文字化けしたり、show tablesで表示されなかったりすることは事実で、日本MySQLユーザ会でも、「日本語の名前は使用しない方がいい」と提唱しています。



>しかしMySQLではテーブル名がバグってしまい

バグって、誰のバグですか?
安易に、そういった表現を使って欲しくないのですけど。

「入金」という名称の表が、実際に存在するか、確認していますか?

例えば、以下のSQLを実行すると、件数が表示されますか?

select count(*) from 入金;

もし、「表がない」といったエラーが出るなら、表ができていないのだと思いますけど?
もし、件数が表示されるなら、「drop table 入金」で削除できると思います。
    • good
    • 0

文字コードの問題かもしれないので、入力の文字コードを変えて試してみてください。



あと、
show tables;
ででてきた表名をそのままコピー&ペーストでやるとどうですか?
    • good
    • 0

逆に、必要なテーブルだけバックアップした上で、データベースを作り直したらどうでしょうか。



文字化けしているテーブルはインポートしたものとのことなので、データは外にあるので消しても問題なし。元々あったものは・・・まさかそうはなっていないですよね。(であれば、事前に文字化けはわかるわけで、インポートしてないですよね)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!