2012-10-17 40 views
1

下面是用於創建我的表CREATE TABLE語句:忽略MySQL警告消息的影響是什麼?

CREATE TABLE IF NOT EXISTS `data_received` (
    `id` int(10) unsigned NOT NULL, 
    `date_received` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `edit_time` datetime NOT NULL 
} 

下面是數據如何保存在表中插入,如果沒有提供 'edit_time' 值:

id date_received   edit_time 
1 2012-10-12 12:15:46 0000-00-00 00:00:00 

另外,我得到這個警告信息:Warning: #1264 Out of range value for column 'edit_time' at row 1

  • 所以,我的問題是,是否有忽略這個警告信息的影響?
  • 我期待每分鐘插入10到15行。那麼,會不會有任何性能下降?
  • 有什麼我可以做的,以阻止這種警告信息的發生?

回答

0

當MySQL在數字列是列數據類型的允許範圍之外存儲值,結果在當時效果取決於SQL模式: 如果啓用嚴格SQL模式,MySQL的拒絕超出範圍的值帶有錯誤,並且插入失敗,符合SQL標準。如果未啓用任何限制性模式,則MySQL會將該值剪切到該範圍的適當端點並存儲結果值。

+0

我不明白爲什麼0000-00-00 00:00:00被認爲超出範圍。 –

+1

@JanDvorak [「mysql datetime range」](http://dev.mysql.com/doc/refman/5.0/en/datetime.html) – 2012-10-17 04:57:52

+2

月限是1-12天,限制是1-31 00是out範圍 –