2017-03-22 5 views
1

MySQLはDATE_ADDを使用してDATE列のデフォルト値を設定しますか?私は式を使用して、デフォルトの日付値と私のテーブルにDATE列を追加しようとしている

ALTER TABLE `wp_ezts_project_params` ADD `est_completion` DATE NOT NULL 
DEFAULT DATE_ADD(CURRENT_DATE(), INTERVAL 1 MONTH) AFTER `client_id` 

私はいくつかのSQL関数のさまざまなバリエーションを試してみましたが、すべての時間がDATE_ADDの近くに、構文エラーが発生します。

phpMyAdminで式をデフォルト値として使用することはできませんか?

+0

alter tableで 'DATE_ADD'を使用できません – nogad

+0

phpMyAdminがデータベースではないことを覚えています – nogad

答えて

1

phpMyAdminで式をデフォルト値として使用することはできませんか?

はい、許可されていません。明示的にデータ型仕様のデフォルト値句は列の デフォルト値を示し​​

に述べています。 1つの例外を除き、デフォルト値は でなければなりません。関数または式にすることはできません。つまり、 の場合、NOW()やCURRENT_DATEなどの関数の値である に日付列のデフォルトを設定することはできません。例外 は、あなたが本当にあなたがA)でそれを渡す必要がまたはb)を使用します。この列の値を割り当てたい場合は、

だから、TIMESTAMP とDATETIMEカラムのデフォルトとしてCURRENT_TIMESTAMPを指定することができるということですトリガー

本当にこの列はまったく必要ありません。それはあなたが冗長性を導入していることを意味する、単純な日付追加の結果である値を格納しているように思えます。それをただちに計算してください。

+0

ありがとう、ありがとう。それはそれを説明する。 –

関連する問題