2006年01月05日

カラム名、カラムの型を変更するには?

カラム名の変更は
alter table testtable change aga age integer;

なんてするです。

カラムの型の変更は
alter table testtable modify age smallint;

または
alter table testtable change age age smallint;

なんてカラム名の変更と同じようにするです。
posted by ほえ at 15:50| Comment(0) | TrackBack(0) | MySQL | このブログの読者になる | 更新情報をチェックする

2005年12月06日

MySQLで文字化けが

MySQL4.1.11がインストールされているわけですが、デフォルトのままテーブルを作成しました。
データをinsertすると、日本語が化けてしまうわけです。
以前の記事の様に、
/etc/mysql/my.cnf
にキャラクタセットを書いて、再度insertしたのですが、やはり文字化けです。
うーん。と思い、mysql-adminをインストールして、テーブルを見てみました。
すると、テーブルのキャラクタセットがiso 8859-1 West Europeanになっていましたので、UTF-8 Unicodeに直しておきました。でも、まだ文字化けします。
カラムを見てみるとここも同じようにiso 8859-1 West Europeanになってしまっていましたので、UTF-8 Unicodeに直しておきました。
さて、insertしてみると。。。OKです!。
msql-adminで変更をすると、変更前に変更のSQLを表示してくれます。いいですね。
テーブルの変更はこれで、
ALTER TABLE `db1`.`table1` CHARACTER SET utf8;
カラムの変更はこれです。
ALTER TABLE `db1`.`table1` MODIFY COLUMN `column1` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;

でも、この変更だと後から作成されるテーブルがまたiso 8859-1 West Europeanになってしまいます。データベースのキャラクタセットの変更方法がわからないので、一旦データベースを削除して、テーブルを再作成したいと思います。

CREATE TABLE `table1` (
`column1` varchar(255) default NULL,
`column2` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
こんなになってました。
最後にキャラクタセットがlatin1だという指定があるので、ここはさくじょして、
CREATE TABLE `goods` (
`column1` varchar(255) default NULL,
`column2` varchar(255) default NULL
)
としました。

/etc/mysql/my.cnfのデフォルトキャラクタセットを変更してあるので、これで、新しいテーブルを作成しても、テーブルもカラムもキャラクタセットがUTF-8 Unicodeで作成されます。
posted by ほえ at 18:33| Comment(0) | TrackBack(0) | MySQL | このブログの読者になる | 更新情報をチェックする

2005年09月29日

MySQLの日本語

MySQLで日本語を使うにはどうしたら?と思い色々調べてみる。が、いろいろありすぎてよくわからない。
つまり、フィールド、テーブル、データベース、サーバ、クライアント、PHPなどのモジュール、ひいては端末とかファイルの文字コードとか...。コンパイル時の指定なのか、設定ファイルなのか、起動時のオプションなのかとか...。OSとかも?いろいろ多すぎ...。
...も多すぎ。

なので簡単なところから
show variables like 'char%';

で、どこでどのコードを使っているかがわかります。

select version();

で、バージョンがわかります。

show character set;

で、キャラクタセットがわかります。

mysql> select * fr
->
なんて間違っちゃって途中でやめたいときは、
mysql> select * fr
-> \c
と「\」「c」を入力してRETでクリアされます。
入力途中でも、\hでヘルプが出ます。

/etc/my.cnf
の[mysqld]に
default-character-set = utf8
を追加。[mysql]にも同様。
mysql> show variables like 'char%';

の結果が、全部utf8になりました。

で、いろいろなプログラムでMySQLに接続した直後に
SET NAMES UTF8
で、キャラクタセットを指定すると文字化けしなくなる。

という結論です。
ふらふら
posted by ほえ at 14:08| Comment(0) | TrackBack(0) | MySQL | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。