2016-04-23 21 views
-3

私が使用しています:無効なデフォルト値CURRENT_TIMESTAMP

'time' type(datetime) defult value(CURRENT_TIMESTAMP) 

が、それは動作しませんが、それは次のエラーを示しています:

Invalid default value for 'Date' 

を誰も私を助けることができますしてください?

+2

あなたのコードと一緒にエラーメッセージを投稿してください! – Saty

+0

shareテーブルスキーマ/構造イメージ? – C2486

+0

可能な複製:http://stackoverflow.com/questions/11573586/invalid-default-value-for-date – spencer7593

答えて

1

あなたは、CREATE TABLEで以降のMySQLのバージョン5.6.5または

を実行している場合は、このような列を宣言することができます:5.6前に、それはDATETIMEためCURRENT_TIMESTAMPを使用することはできません

`mydtcol` DATETIME DEFAULT CURRENT_TIMESTAMP 

カラム。テーブル内の最初のTIMESTAMPカラムで可能です。

`mytscol` TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

あなたはdatetimeデータ型であることを、列を必要とし、あなたが行を挿入するときに初期化された列の値が必要な場合は、例えば、INSERT文で列の値を提供しますか、

INSERT INTO mytable (...,mycol,...) VALUES (...,'2016-04-21 23:55:55',...) 

または、BEFORE INSERTトリガーを使用して列に値を割り当てることができます。

DELIMITER $$ 

CREATE TRIGGER mytable_bi 
BEFORE INSERT ON mytable 
FOR EACH ROW 
BEGIN 
    IF new.mydtcol IS NULL THEN 
     SET new.mydtcol = NOW(); 
    END IF; 
END$$ 

DELIMITER ; 
+0

ありがとうございました –

関連する問題