編集
MySQL 5.6.4以降、データ型TIMESTAMP(n)
n
を指定します (0から6まで)小数秒の精度の10進数。
MySQL 5.6より前では、MySQLはTIMESTAMP
の一部として保存された秒数をサポートしていませんでした データ型。
参照: https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html
TIMESTAMP
で長さ修飾子を指定する必要はありません 。 TIMESTAMP
を指定するだけです 単独で。
ただし、最初のTIMESTAMP
テーブルで定義された列は、自動初期化と更新の対象になります。例:
create table foo (id int, ts timestamp, val varchar(2));
show create table foo;
CREATE TABLE `foo` (
`id` INT(11) DEFAULT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`val` VARCHAR(2) DEFAULT NULL
)
データ型に続く括弧に何が入るかは、データ型が何であるかによって異なりますが、一部のデータ型では、長さ修飾子です。
一部のデータ型では、長さ修飾子は、格納できる値の最大長に影響します。例:VARCHAR(20)
最大20文字まで保存できます。そしてDECIMAL(10,6)
小数点の前に4桁、小数点の後に6桁の数値があり、有効範囲は-9999.999999〜9999.999999です。
他のタイプの場合、長さ修飾子は、格納できる値の範囲に影響を与えません。例:INT(4)
およびINT(10)
は両方とも整数であり、両方とも整数データ型で許可される値の全範囲を格納できます。
その場合、その長さ修飾子が行うことは単なる情報です。基本的に、推奨される表示幅を指定します。クライアントはそれを利用して、列の値を表示するために行に予約するスペースの量を決定できます。クライアントはそれを行う必要はありませんが、その情報は利用可能です。
編集
TIMESTAMP
の長さ修飾子は使用できなくなりました データ・タイプ。 (本当に古いバージョンのMySQLを実行していて、それが受け入れられた場合、それは無視されます。)