123

tableから取得したこの定義を持つMySQL がありますSQLYog Enterprise

Table              Create Table                                             
-----------------  ---------------------------------------------------------
etape_prospection  CREATE TABLE `etape_prospection` (                       
                     `etape_prosp_id` int(10) NOT NULL AUTO_INCREMENT,      
                     `type_prosp_id` int(10) NOT NULL DEFAULT '0',          
                     `prosp_id` int(10) NOT NULL DEFAULT '0',               
                     `etape_prosp_date` datetime DEFAULT NULL,              
                     `etape_prosp_comment` text,                            
                     PRIMARY KEY (`etape_prosp_id`),                        
                     KEY `concerne_fk` (`prosp_id`),                        
                     KEY `de_type_fk` (`type_prosp_id`)                     
                   ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1  

default charsetこのテーブルの を からlatin1に変更したいですutf8。どうやってするか ?

4

5 に答える 5

244

テーブルdefault character setとすべての文字列を新しい文字セットに変更する場合は、次のようなステートメントを使用します。

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

したがって、クエリは次のようになります。

ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8;
于 2012-01-18T08:04:24.227 に答える
21

テーブルのデフォルトの文字セットを変更します:

ALTER TABLE etape_prospection
  CHARACTER SET utf8,
  COLLATE utf8_general_ci;

文字列列の文字セットを変更するには、次のクエリを実行します。

ALTER TABLE etape_prospection
  CHANGE COLUMN etape_prosp_comment etape_prosp_comment TEXT CHARACTER SET utf8 COLLATE utf8_general_ci;
于 2012-01-18T07:58:31.663 に答える
10

ALTER TABLEMySQL コマンドでうまくいくはずです。次のコマンドは、テーブルのデフォルトの文字セットとそのすべての列の文字セットを UTF8 に変更します。

ALTER TABLE etape_prospection CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

このコマンドは、テーブル内のすべてのテキストに似た列を新しい文字セットに変換します。文字セットは文字ごとに異なる量のデータを使用するため、MySQL は一部の列の型を変換して、古い列型と同じ文字数に収まる十分なスペースを確保します。

ライブ データを変更する前に、 ALTER TABLE MySQL のドキュメントを読むことをお勧めします。

于 2012-01-18T07:57:25.560 に答える
2

でデフォルトを変更できますがalter table set default charset、既存の列の文字セットは変更されません。それを変更するには、alter table modify column.

列の文字セットを変更すると、より広い範囲の文字を格納できるようになるだけです。アプリケーションは mysql クライアントを使用してデータベースと通信するため、クライアントのエンコーディングも変更する必要がある場合があります。

于 2012-01-18T08:02:14.460 に答える