,我發現另一種解決方案是這樣的: -
獲取所有列的名稱把它在陣列... 現在將值列陣列插入 - 與所有這些數組的ZERO值都沒有值。 例如: 在一個表中,我們有COLUMN 名姓氏COMPNAME PHONO電子郵件地址ALTERPERSON ALTERPHONE ALTEREMAIL 現在遷移後,我們看到了eeror
Error Code: 1364. Field 'field' doesn't have a default value
如果我們運行一個INSERT查詢LIKE
mysqli_query($con,'insert into table (NAME,LASTNAME,COMPNAME,PHONO,EMAIL,ADDRESS) values (NAME,LASTNAME,COMPNAME,PHONO,EMAIL,ADDRESS)')
現在它會給出錯誤...
所以只需打開表 從DB獲取所有列值。TABLE 把它放在一個數組中,或使用while循環或for循環一個接一個地執行...
檢查每列的插入值 如果插入值等於零或NULL,則插入零,然後插入零解決所有問題。
爲什麼ZERO -
,因爲它會爲VARCHAR,TEXT,INT,BIGINT和除了時間或日期功能和日期/時間數據類型許多數據類型的工作在默認情況下得到了零個值...
===============================另一個選項...
運行一個PHP代碼 get all TABLE名稱 然後對於每個TABLE名稱 獲取所有COLUMN名稱
和在功能上運行此命令下循環
ALTER TABLE DB.TABLEnAME CHANGE columnNAME_A
columnNAME_A
VARCHAR(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL;
=======================
並對其做
有人低估了這個問題。不知道爲什麼? –
我減輕了這一點,你的問題並沒有那麼糟糕;)要修改它在數據庫端而不改變模式,你必須改變你的列以給它們一個默認值。 [我如何修改mysql表列的默認值?](http:// stackoverflow。com/questions/1770203/how-do-i-alter-a-mysql-table-column-defaults)可能會有所幫助。 –
hmm..okay ..是否有可能在整個數據庫的單個查詢中? –