DEVELOPERS BLOGデベロッパーズブログ

  1. HOME > 
  2. 加藤 正人のデベロッパーズブログ > 
  3. phpMyAdmin がおかしい

加藤 正人のデベロッパーズブログ

加藤 正人

氏名
加藤 正人
役職
多分SE
血液型
秘密
出没
美味しいもののあるところ
特色
タヒチ大好き。ちょいメタボ。

加藤 正人

2016/05/07

phpMyAdmin がおかしい

 

先日に引き続き、phpMyAdmin の挙動におかしなところを見つけた。(phpMyAdmin 4.6.0)

具体的には、テーブルのコメントに NULL が入っているとテーブルを SQL エクスポートする際におかしな CREATE 文を生成するのだ。

例えば、members テーブルに DATE 型フィールド birthday があり、デフォルト値が NULL だとする。これをフィールドのコメントとして「誕生日 (省略時は NULL)」のように記入してあると、SQL エクスポートを実行した際に以下のような CREATE 文を出力する。

01CREATE TABLE `members` (
02  `id` int(11) NOT NULL COMMENT '会員ID',
03  `status` int(11) NOT NULL DEFAULT '1' COMMENT '会員状態 (0: 無効; 1: 有効) サイト管理者が変更',
04  `picture_file_name` varchar(64) NOT NULL COMMENT '会員アバター画像ファイル名',
05  `name_family` varchar(32) NOT NULL COMMENT '姓 ※必須',
06  `name_given` varchar(32) NOT NULL COMMENT '名 ※必須',
07  `kana_family` varchar(32) NOT NULL COMMENT '姓 (カナ) ※必須',
08  `kana_given` varchar(32) NOT NULL COMMENT '名 (カナ) ※必須',
09  `nickname` varchar(32) NOT NULL COMMENT 'ニックネーム (省略時は空文字列)',
10  `birthday` date DEFAULT NULL COMMENT AS `誕生日 (省略時はNULL)`,
11  `pref_id` int(11) NOT NULL COMMENT '都道府県ID',
12  `city_id` int(11) NOT NULL COMMENT '市区町村ID',
13  `address` varchar(32) NOT NULL COMMENT '町域以下の住所',
14  `building` varchar(32) NOT NULL COMMENT '建物名称、部屋番号など',
15  `self_introduction` text NOT NULL COMMENT '自己紹介文 (平文、改行有効) ※必須',
16  `email` varchar(64) NOT NULL COMMENT 'メールアドレス ※必須',
17  `password` varchar(64) NOT NULL COMMENT 'SHA-256エンコードしたパスワード文字列 ※必須',
18  `master_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'マスターステータス (0: 無効; 1: 有効) 既定値は 1',
19  `verification_status` smallint(6) NOT NULL DEFAULT '0'COMMENT
20) ;

上記の10行目を見てみると、コメント部分が COMMENT '...' ではなく COMMENT AS `...` になっている。このため、この CREATE 文を実行しようとすると構文エラーとなってしまう。

どうもこのところ phpMyAdmin でトラブルが起きることが多い。MariaDB との協調動作に問題があるのだろうか。

関連タグ: phpMyAdmin  MariaDB 

関連エントリー