編集
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を実行していて、それが受け入れられた場合、それは無視されます。)