2013-11-24 5 views
5

私はいくつかの日付を持つMySQLテーブルを持っています 私はそれらのうちの1つが現在の時間に等しいデフォルト値を持っている必要があります 私は 'Sequel Pro'を使用してデータベースを構築しています 次に、 (と 'GETDATE()')はデフォルト値で動作しますが、動作しません。Sequel PROで 'Set default value'を 'NOW()'に設定するにはどうすればいいですか?

誰かが私に手伝ってもらえますか?Sequel PROでは 'Set Default Value'を 'NOW()'に設定できますか?

ERROR:

An error occurred when trying to change the field 'DataDoPedido' via

ALTER TABLE Reserva CHANGE DataDoPedido DataDoPedido DATE NOT NULL DEFAULT 'now()'

MySQL said: Invalid default value for 'DataDoPedido'

感謝。

+0

'CURRENT_TIMESTAMP'を' DEFAULT'として使用するサポートは、MySQL 5.6.x + –

答えて

7

MySQLの場合、列に指定されたDEFAULTは定数でなければなりません。関数からの復帰はできません。 1つの例外はTIMESTAMPデータ型です。データ型はDEFAULT CURRENT_TIMESTAMPです。

DATE列を初期化する必要がある場合、回避策の1つはBEFORE INSERT ONトリガーを作成することです。

+0

です。ありがとうございます。 PHPでDATEのようなTIMESTAMPを使用できますか? DATEをデータベースのTIMESTAMPに変更して使用しましたが、TIMESTAMPは使用しませんでしたが、 'date'との違いは何ですか? –

+1

MySQLの 'DATE'データ型には時間部分がありません。それは年月日なので、' DATETIME'または 'TIMESTAMP'にキャストされると、時刻コンポーネントは真夜中00:00:00とみなされます。 'DATETIME'と' TIMESTAMP'データ型は日付と時間を1秒までの分解能で保持します。 MySQL JDBCドライバでは、DATE、DATETIME、およびTIMESTAMPは基本的に互換性があります。 PHPについてはわかりません。 – spencer7593

関連する問題