月別アーカイブ: 2010年4月

MySQLでテーブル毎に設定されているストレージエンジンを確認する方法

MySQLでは、各テーブル毎にストレージエンジンを設定する事が出来ます。

大体は、この2つのどちらかになるかと思います。

MyISAM:検索に強いらしい

InnoDB:トランザクションが使えるらしい

と言う事で、各テーブル毎に設定されているストレージエンジンを確認する方法です。

# mysql -u root
mysql> use information_schema;
mysql> select table_name, engine from tables where table_schema = DB_NAME;
+--------------------+--------+
| table_name         | engine |
+--------------------+--------+
| hogehoge           | InnoDB |
| hagehage           | MyISAM |
| higehige           | InnoDB |
+--------------------+--------+
mysql> exit;

「show table status」でも確認出来ますが、複数DBが動いている状態だと、全てのDBのテーブルが表示されてしまうので。

でわ。

MySQLで予約語をフィールド名に設定する方法

掲題の件、基本的にはやっちゃダメです。

ですが、よく分かってない人がDB設計やったりすると、予約語をフィールド名に設定されたりします。

で、Create Table する時に、エラーになったり・・・

と言う事で、予約語をフィールド名に設定する方法です。

create table test_table (
id int(5) not null auto_increment,
option varchar(100),
group char(10)
) type=MyISAM;

この場合、「option」「group」が予約語になります。

このままこのSQLを発行するとエラーになります。

なので、こうやって書いてやります。

create table test_table (
id int(5) not null auto_increment,
`option` varchar(100),
`group` char(10)
) type=MyISAM;

これで、Create Table が成功します。

Insertする時やUpdateする時も同じようにやってあげる必要があるかもです。

そのあたりは各自で検証を・・・

でわ。