私は、日時とデフォルト値のcurrent_timestampであるフィールドtsを持つテーブルを持っています。一時的なテーブルを作成して日付から選択すると、デフォルトの値が無効になるエラー
私は
CREATE TEMPORARY TABLE tblTmp (
tmpid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
INDEX(tmpid)
) AS
SELECT * FROM myTable;
を経由してこの表から、一時テーブルを作成しようとすると、私はので、列TSの無効なデフォルト値のエラーを取得します。
これは、mysql 5.7のstrictモードに関連していることがわかりました。
私はこのエラーがなぜcurr_timestampでデフォルト値として発生するのか理解できないため、これを処理する方法はありますか?
UPDATE:selectでNOW()またはCURRENT_TIMESTAMPを使用していることがわかりました。私はラインを削除し、それは動作します。
ので:
SELECT col1, col2, ... FROM myTable
は
SELECT col1, col2, NOW() as currDatetime FROM myTable
が動作していない取り組んでいます。
これはどうして起こりますか?
なぜ、 'create * from myTable'として' create temporary table tblTmp?その後、インデックスを作成します。 –
@Gordonは私の問題を解決するものではありません。エラーメッセージは、tmpId以外のdatetimeカラムに関連しています – solick
select *ではなく、無効な値の名前とコードでフィールドを選択できますか? –