読者です 読者をやめる 読者になる 読者になる

文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

ERMaster:カラムに文字コードを設定する。

ER図

ERMasterでカラムに文字コードを設定する。
f:id:treeapps:20110512003445p:image
列情報ウインドウの詳細タブの「カラムの制約」の部分に「character set ascii」等と書く。
DDL出力すると以下のようになる。

CREATE TABLE SYNONYM
(
	SEQ INT UNSIGNED NOT NULL AUTO_INCREMENT,
	WORD TEXT character set ascii,
	PRIMARY KEY (SEQ)
) ENGINE = InnoDB DEFAULT CHARACTER SET utf8;

1点だけ注意する事があります。カラムがnot nullの場合、not nullチェックボックスをオンにしてしまうと、Syntax error になってしまいます。

CREATE TABLE SYNONYM
(
	SEQ INT UNSIGNED NOT NULL AUTO_INCREMENT,
	WORD TEXT NOT NULL character set ascii,
	PRIMARY KEY (SEQ)
) ENGINE = InnoDB DEFAULT CHARACTER SET utf8;
</pre>
<span class="deco" style="font-weight:bold;"><span class="deco" style="color:deeppink;">NOT NULLはcharacter setより後ろに定義しないと構文エラーになる</span></span>のです。
これを解決するには、ちょっと嫌だけど、「カラムの制約」の部分に「character set ascii <span class="deco" style="color:deeppink;">not null</span>」等と書けばいい。
これで物理的に対応できない、という事態は避けられる。