2011-04-26 47 views
1

我看到,我有在表的末尾這個代碼,我想插入我的分貝:我可以在我的查詢中避免sql_mode嗎?

/*!40000 ALTER TABLE `to_import` ENABLE KEYS */; 
/*!40101 SET [email protected]_SQL_MODE */; 
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; 
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */; 

當我嘗試執行對phpMyAdmin的查詢,我得到#1231 - Variable 'sql_mode' can't be set to the value of 'NULL',我不明白爲什麼。

那麼,我可以刪除那個/*!40101 SET [email protected]_SQL_MODE */;?這很重要嗎?試圖瞭解這一點,但實際上我不明白它做了什麼。

回答

2

表格定義上面可能有SET @OLD_SQL_MODE = @@sql_mode; SET SQL_MODE='something'。顯然你忘了把它包含在你的複製SQL中。

您的導出工具希望ALTER TABLE以某種SQL模式執行並在ALTER TABLE之前設置。要稍後將其重置爲之前的值,它會將當前值存儲在名爲@OLD_SQL_MODE的變量中。 該行的目的是將SQL_MODE重置爲之前的任何值。

因此,您需要同時具有上述SET和SET以及您的表定義下方的SET,或者不需要它們。

相關問題