MySQLのテーブル設計で迷っています。
クリエイト文のカッコの中は桁数を表しているのでしょうか?それともバイト数でしょうか?桁数であれば、それぞれの型で何桁まで設定できますでしょうか?
int型のnoを18桁に変更したいのですが、調べているうちに迷ってしまいました。
型 バイト 最小値 最大値
TINYINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT 4 -2147483648 2147483647
BIGINT 8 -9223372036854775808 9223372036854775807
CREATE TABLE `user` (
`no` int(8) unsigned NOT NULL auto_increment,
`id` varchar(24) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`reg_date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`no`)
) TYPE=MyISAM;
No.1
- 回答日時:
> クリエイト文のカッコの中は桁数を表しているのでしょうか?
> それともバイト数でしょうか?
文字列型はバイト数ですが、数値型の場合は表示桁数です。
カッコの数値を変えても記憶領域は変えられません。
数値型のカッコは主にZEROFILLと組み合わせて使われるようです。
質問の18桁の数値が保持したいなら素直にBIGINTを使うか、
verchar等の文字型で代用する事になると思います。
例えば、こんなテーブルを作って…
CREATE TABLE `user` (
`no` int(8) unsigned zerofill NOT NULL auto_increment
) TYPE=MyISAM;
INSERT user(no) VALUES(1);
でデータを作った場合
SELECT * FROM user;
+----------+
| no |
+----------+
| 00000001 |
+----------+
1 rows in set (0.00 sec)
こんなんなります。また…
INT unsign の上限は 4294967295 ですので
INSERT user(no) VALUES(4294967296);
はエラーになります。
保持できるデータ型の範囲は参照URLをどぞ。
参考URL:http://dev.mysql.com/doc/refman/5.1/ja/data-type …
No.2
- 回答日時:
#1です。
> 例えば、こんなテーブルを作って…
試したらエラーでした。すいません。書き直します。
質問者様のテーブルを拝借して…
CREATE TABLE `user` (
`no` int(8) unsigned zerofill NOT NULL auto_increment,
`id` varchar(24) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`reg_date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`no`)
) ENGINE=MyISAM;
これにデータを追加
INSERT user(id, email) VALUES('test-user', 'test@exsample.com');
読み出す。
mysql> SELECT * FROM user;
+----------+-----------+-------------------+---------------------+
| no | id | email | reg_date |
+----------+-----------+-------------------+---------------------+
| 00000001 | test-user | test@exsample.com | 0000-00-00 00:00:00 |
+----------+-----------+-------------------+---------------------+
1 row in set (0.00 sec)
↑ゼロを追加されて'no'の内容を8桁表示になっている。テキストがズレているのは気にしない方向で…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL MYSQL エラー 2 2022/10/18 11:37
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
同一のユーザー、同一商品のと...
-
マイクラPC版のコマンドで効率...
-
テーブル名を省略して「h.id」...
-
副問合せの書き方について
-
複数テーブルのGROUP BY の使い...
-
select文のwhere句に配列を入れ...
-
SQLで残高計算
-
クエリ表示と、ADOで抽出したレ...
-
php+MySQLでレコードが何行目か...
-
select文で特定のIDを抽出しupdate
-
MySQLでのバイナリデータ削除方法
-
sqlで、600行あるテーブルを100...
-
SQL Left Join で重複を排除す...
-
書籍の内容はまともでしょうか?
-
MySQLのint型で001と表示する方...
-
【MySQL】本当に困っているので...
-
SQLサーバから、項目の属性(型...
-
SELECT/別テーブルのレコード...
-
AUTO_INCREMENTのあるテーブル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQL Left Join で重複を排除す...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
VIEWの元のテーブルのindexって...
-
select文のwhere句に配列を入れ...
-
selectした大量データをinsert...
-
センノシド異性体構造式
-
Unionした最後にGROUP BYを追加...
-
insertを高速化させたい
-
SQLにて特定の文字を除いた検索...
-
マイクラPC版のコマンドで効率...
-
ある条件の最大値+1を初番する...
-
inner joinをすると数がおかし...
-
sqlで、600行あるテーブルを100...
-
エクセルの関数について教えて...
-
Access パラメータクエリをcsv...
-
URL と行番号の指定
-
複数テーブルのGROUP BY の使い...
-
PL/SQLの変数について
おすすめ情報