[前][次][番号順一覧][スレッド一覧]

mysql:1819

From: <takeshi@xxxxxxxxxx>
Date: Tue, 28 Mar 2000 18:38:06 +0900
Subject: [mysql 01819] Re: Quoted column name on mysqldump output

At Tue, 28 Mar 2000 17:36:09 +0900,
Kengo Jinno <kengo@xxxxxxxxxx> wrote:
> 
> 神野です。
> 
> Linuxでmysql 3.22.32 (ujis)を使っています。
> 
> mysqldumpでダンプすると、日本語の項目名がquoteされます。
> それでそのままmysqlにかけると、「You have an error in your 
> SQL syntax near '`項目名`」と怒られてしまいます。
> 
> 具体的には、
> 
> | create table テスト (
> |   english int,
> |   日本語 int
> | );
> 
> というようなテーブルを作成し、mysqldump -d でダンプします。
> すると、こうなります。
> 
> | CREATE TABLE テスト (
> |   english int(11),
> |   `日本語` int(11)
> | );

<cut>

> それぞれのバージョンは、以下の通りです。
> 
> | foo:~$ mysql --version
> | mysql  Ver 9.38 Distrib 3.22.32, for pc-linux-gnu (i686)
> | foo:~$ mysqldump --version
> | mysqldump  Ver 7.1 Distrib 3.22.32, for pc-linux-gnu (i686)
> 
> ・そもそもquoteされてしまうのが、どこかおかしいのでしょうか?
> ・このquoteを抑止する方法は無いでしょうか?
>  --quote-namesの逆のオプションがあればいいのですが。

mysqldump version 7 から quote が導入された際に、
multibytes 文字のことが考慮されていないようです。

MySQL-3.22.27 付属の mysqldump コマンドは version 6.4 で
この問題は起きないです。

古いバージョンの mysqldump コマンドを使用するか、
以下のパッチを当てて、quote をつけないように mysqldump コマンドを
変更してみてください

--- mysqldump.c.orig	Fri Feb 11 06:07:42 2000
+++ mysqldump.c	Tue Mar 28 18:31:04 2000
@@ -559,7 +559,8 @@
       strpos=strmov(strpos,row[SHOW_FIELDNAME]);
     if (!tFlag)
     {
-      if (opt_quoted || test_if_special_chars(row[SHOW_FIELDNAME]))
+/*      if (opt_quoted || test_if_special_chars(row[SHOW_FIELDNAME]))*/
+      if (opt_quoted)
 	fprintf(sql_file, "  %c%s%c %s", QUOTE_CHAR,row[SHOW_FIELDNAME],
 		QUOTE_CHAR, row[SHOW_TYPE]);
       else if (opt_keywords)

-- 
 村上 毅  takeshi@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]

      1818 2000-03-28 17:36 [Kengo Jinno <kengo@x] Quoted column name on mysqldump output  
->    1819 2000-03-28 18:38 ┗[<takeshi@xxxxxxxxxx>]                                       
      1820 2000-03-28 19:18  ┣[Kengo Jinno <kengo@x]                                     
      1824 2000-03-29 00:39  ┗[とみたまさひろ <tomm]                                     
      1829 2000-03-29 10:08   ┗[<takeshi@xxxxxxxxxx>]