我正在將一些數據遷移到MySQL中,並且來自其他數據庫的轉儲已將特定日期字段留空。MySQL日期字段不包含任何值 - 導入問題
表看起來是這樣的:
+------------------+-------------+------+-----+------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+------------+-------+
| lngID | int(11) | NO | PRI | 0 | |
| dtmDateSubmitted | date | NO | | 0000-00-00 | |
該插入看起來是這樣的:
INSERT INTO tblReports VALUES (1012,'', ...
這得到了傾倒了大量的記錄日期字段爲空,但表示爲:''
。
ERROR 1292 (22007) at line 1:
Incorrect date value: '' for column 'dtmDateSubmitted' at row 1
覺得有點愚蠢,因爲我真的從來沒有正確的理解空/空交易和文檔痛死我了:
當試圖導入此我得到下面的錯誤。
難道在MySQL中「日期」字段不允許在任何情況下''
值?它需要是NULL
? (爲了記錄,我嘗試了一堆零組合和默認選項之間的組合,無濟於事)。
通常情況下,我會將''
更改爲NULL
,以使此錯誤消失,但它似乎是錯誤的和駭人聽聞的。任何人都可以告訴我一個適當的/更好的方式來對待這是什麼?
我懷疑我可以從根本上誤解MySQL的工作方式,並與NULL
更換''
是正確的方式來處理這個問題。
這假設列接受空值。最佳實踐是儘可能少地執行DML操作。 – 2009-09-26 16:39:26
只是用你想要的任何值替換null,無論如何它是原始插入中的空字符串。你會插入什麼? – Kane 2009-09-26 17:10:08
der!真棒!謝謝。 – Williams 2009-09-27 04:46:02