2012-03-03 6 views
4

MySQLの間違いをテーブルを追加するとき、私は自分のサイトの統計情報テーブルを生成するスクリプトを作りました。日によって MySQLの間違い(してくださいlaughtはありません)ので</p> <p>をスクリプト

  • テーブルユーザーによる
  • テーブル
  • テーブルのuser_agent
  • によって年間で

    • テーブル:このスクリプトは次のように異なる粒度で異なる統計データに使用されている2000以上のテーブルを生成し、

      など...(これは以前のいわゆる建築家によって作られたのですが、0.02秒以内にロードされた理由は分かりません)

      新しいテーブルを追加するためにスクリプトを更新しましたが、間違いました。

      テーブル名にスペースを入れて削除できません。私はそれをエスケープする\しかし、誰成功を入れてみてください:

      [email protected]:reports> drop table xd_2012_02_\ ua; 
      ERROR: 
      Unknown command '\ '. 
      ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\ ua' at line 1 
      

    答えて

    8

    あなたは`を使用する必要があります - これは、実際のテーブル名として渡された文字列ではなく、あなたがしたいコマンドの束を扱います実行する。

    [email protected]:reports> drop table `xd_2012_02_\ ua`; 
    

    これが表示される必要があります。

    Query OK, 0 rows affected (0.00 sec) 
    

    私だけではなく、この場合の`を使用することをお勧めしますが、あなたはtypeまたはdesc(のような予約MySQLの言葉を使用する場合も、それがエラーを防止します説明として)を列またはテーブル名に使用します。これにより、後で頭痛を軽減できます。ただし、予約文字や特殊文字を使用するのは良い方法ではありませんが、それは私だけです。

    +0

    、おかげで動作するはずです。 –

    +0

    問題はありませんが、ちなみに –

    +0

    を歓迎します。この "アーキテクチャ"は良いデザインだと思いますか? –

    0

    使用この構文:

    drop table \`xd_2012_02 ua\`; 
    

    これはそれが動作するスペース

    関連する問題