0

現在phpmyadminを使用しており、データが挿入されたときに現在の日付をスタンプするフィールドを設定しようとしています。

DATETIMEタイプに設定してみましたが、時間も含まれています。日付が欲しいだけです。DATETIMEまた、デフォルト値をに設定しGETDATE()て保存しようとしましたが、エラーが発生しました。

#1067 - Invalid default value for 'upload_date' 

誰かがこれを行う方法を知っていますか?

4

2 に答える 2

5

残念ながら、値を関数に設定することはできませんDEFAULT。定数値である必要があります。1つの例外はですが、次の部分CURRENT_TIMESTAMPも含まれます。time

column_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP

ただし、を使用しTRIGGERて列のデフォルト値を設定できます。例えば:

CREATE TRIGGER trigger_name BEFORE INSERT ON your_table
  FOR EACH ROW SET NEW.date_column = DATE(NOW());

また、を使用しての部分DATE()を切り捨てます。TIMENOW()

于 2012-09-12T11:23:28.477 に答える
0

よくあるエラーです。ドキュメントをあなたに投げますhttp://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html

データ型指定のDEFAULTvalue句は、列のデフォルト値を示します。1つの例外を除いて、デフォルト値は定数でなければなりません。関数や式にすることはできません。これは、たとえば、日付列のデフォルトをNOW()やCURRENT_DATEなどの関数の値に設定できないことを意味します。例外は、TIMESTAMP列のデフォルトとしてCURRENT_TIMESTAMPを指定できることです。11.1.5.5項「TIMESTAMPの自動初期化と更新」を参照してください。

また、ドキュメントにはcurrent_timestampを使用する例外があります。これには、列がTIMESTAMP列である必要があります。

于 2012-09-12T11:25:50.547 に答える