あなたは2つの側面を混ぜ合わせています:
- データ型 特定の値を許可する PK列用
- フォーマット 表示用に選択した
AUTO_INCREMENT はMySQLの非標準の概念であり、SQLServerはIDENTITY(1,1)を使用します など。
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
これは、 integerとして実装された疑似型です。 添付されたSEQUENCE<からの列のデフォルトの描画を含むデータ型/ code>
。 integer あなたのケースに十分な大きさです(-2147483648から+2147483647)。
最大8桁の数字を強制する必要がある場合は、チェック 制約
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
数字を任意の方法で表示するには(0から8桁まで)、この場合は to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
それはとても速いです。出力はtextであることに注意してください 現在、 integerではありません 。
SQLFiddle。
他のいくつかのことは、コード内でMySQL固有です:
-
int(8):intを使用します 。 日時:タイムスタンプを使用します 。-
TYPE =INNODBストライク> :それをドロップするだけです。