【MySQL】カラム名の大文字、小文字の区別
データベース名、テーブル名では大文字、小文字の区別があるが、カラム名に関しては大文字、小文字の区別をしないとのこと。
http://dev.mysql.com/doc/refman/5.1/ja/identifier-case-sensitivity.html
確かに、これ↓はできない。
create table T ( aa int, Aa int, AA int ); → ERROR 1060: Duplicate column name 'Aa'
しかし、
# こうすると create table T (aA int); #取得のときこうなる select * from T; +--------+ | aA | +--------+ | 1 | | 2 | +--------+ #さらにこうなる select aa, AA, Aa, aA from T; +--------+--------+--------+--------+ | aa | AA | Aa | aA | +--------+--------+--------+--------+ | 1 | 1 | 1 | 1 | | 2 | 2 | 2 | 2 | +--------+--------+--------+--------+
MySQL側は区別しないが、プログラム(php)側に渡ってきたとき、$row[‘aa’]と$row[‘AA’]は区別されてしまう。
混乱するので、カラム名もCamelCaseだ!なんてことはしないで、小文字とアンダーバーで命名するのがよさそうな気がします。
コメント