int(11) の 11 って何だ ?

MySQL のテーブルを作る時に int(11) みたいにしますね。

1CREATE TABLE `posts` (
2  `post_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
3  `author` varchar(64) NOT NULL,
4    :
5  )

varchar などと同じで、 これは 数値型の桁数を指定するものだと思っていたのですが、、、ぜんぜん違うようです。


実際は、 ゼロ詰め (ZEROFILL) 時の桁数 指定であって、桁数はあくまでも tinyintbigint などの型で決まるんですねー。

CREATE TABLE で数値型の指定は不要

不要です。
むしろ指定しないほうがスッキリするし、齟齬がなくなっていい感じですねー。

1CREATE TABLE `wp_posts` (
2  `post_id` int unsigned NOT NULL AUTO_INCREMENT,
3  `author` varchar(64) NOT NULL,
4    :
5  )