Mysql 5.xでは、次のようにすると違いがわかります。
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
これとともに:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB CHARACTER SET=utf8;
最初の文字セットでデフォルトとして文字セットを指定していないことに注意してください。 mysqlのドキュメントで何も見つかりませんでした。
Word DEFAULT
はオプションです。つまり、2つは同等です。つまり、テーブルのデフォルトの文字セットを設定します。
MySQLのドキュメントで CREATE TABLE を参照してください。ここに関連するビットがあります:
table_option:
ENGINE [=] engine_name
... other options ...
| [DEFAULT] CHARACTER SET [=] charset_name
... more options ...
SHOW CREATE TABLE コマンドを使用してこれを確認できます。
MySQLのデフォルト設定には、サーバー、データベース、テーブル、カラムの4つのレベルがあります。より低いレベルのデフォルトを使用すると、より高いレバーのデフォルトをオーバーライドできます。
デフォルトの文字セットがデータベースで設定されているもの以外に設定されているテーブルを変更すると、テーブルのデフォルトがデータベースのデフォルトを上書きします。