gpt4 book ai didi

mysql - 我可以在查询中避免使用 sql_mode 吗?

转载 作者:行者123 更新时间:2023-11-29 07:08:49 28 4
gpt4 key购买 nike

我看到我在要插入数据库的表的末尾有这段代码:

/*!40000 ALTER TABLE `to_import` ENABLE KEYS */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

当我尝试在 phpMyAdmin 上执行查询时,我得到 #1231 - Variable 'sql_mode' can't be set to the value of 'NULL' 我不明白为什么。

那么,我可以删除 /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; 吗?有那么重要吗?试图了解这个,但实际上我不明白它的作用。

最佳答案

可能有一个 SET @OLD_SQL_MODE = @@sql_mode;在表定义上方设置 SQL_MODE='something'。显然你忘了将它包含在你复制的 SQL 中。

您的导出工具希望使用某种 SQL 模式执行 ALTER TABLE,并将其设置在 ALTER TABLE 之前。为了稍后将其重置为之前的值,它将当前值存储在名为@OLD_SQL_MODE 的变量中。该行的目的是将 SQL_MODE 重置为之前的状态。

因此您需要同时拥有表定义上方的 SET 和表定义下方的 SET,或者两者都没有。

关于mysql - 我可以在查询中避免使用 sql_mode 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788986/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com