0

我正在使用 MariaDB 10.2.4。默认情况下,sql_mode 包括 STRICT_TRANS_TABLES,这在大多数情况下都很好。但在特定情况下,我希望数据被截断。有没有办法临时覆盖 sql_mode,或者 INSERT 语句的选项显式允许截断?我在文档或谷歌搜索中找不到任何东西。

您可能会认为这是我应该禁用 MySQL 严格模式的副本吗?,但这个问题是在 2011 年,所以从那时起可能会有新的选择。另外,这个问题是关于一般模式的最佳实践,而不是关于在运行时覆盖的能力。

4

1 回答 1

1

有没有办法暂时覆盖 sql_mode

SET sql_mode = 'mode';是的,您可以通过在 INSERT 之前触发语句来更改此设置。

https://mariadb.com/kb/en/mariadb/sql-mode/#setting-sql_mode

会话值只影响当前客户端,可以在需要时由客户端更改。

因此,如果您在之后立即将其设置回来,则可以确保它仅对这个特定的 INSERT 语句生效。

于 2017-07-20T17:45:41.730 回答