MySqlワークベンチで列をタイムスタンプとして設定するには?質問する

MySqlワークベンチで列をタイムスタンプとして設定するには?質問する

これは本当に初歩的な質問かもしれませんが、これまでテーブルを作成したことがなくTIMESTAMP()、パラメータとして何を入力すればよいのかわかりません。たとえば、次のようになります。

ここに画像の説明を入力してください

をランダムに入力したのですTIMESTAMP(20)が、20パラメータとしての はここで何を意味するのでしょうか? ここには何を入れればよいのでしょうか?

質問をグーグルで検索したのですが、特に何も出てこなかったので... とにかく私はSQL初心者なので、どんな助けでも大歓迎です、ありがとうございます!!

ベストアンサー1

編集

MySQL 5.6.4 以降では、データ型は小数秒の精度の 10 進数桁数 (0 から 6)TIMESTAMP(n)を指定します。n

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 の非常に古いバージョンを実行していて、長さ修飾子が受け入れられる場合は、無視されます。)

おすすめ記事