问题标签 [sql-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 如何在 JetBrains DataGrip 中的 MySQL 连接上设置 SQL 模式
JetBrains DataGrip 是否有任何方法允许我自动设置 SQL_MODE 以连接到 MySQL 数据库?
例如,MySQL Workbench 有一个用于设置 SQL_MODE 的连接的特定字段。虽然 HeidiSQL 提供了一种执行启动脚本的方法。
mysql - 在严格模式下将 INSERT 截断为异常?
我正在使用 MariaDB 10.2.4。默认情况下,sql_mode 包括 STRICT_TRANS_TABLES,这在大多数情况下都很好。但在特定情况下,我希望数据被截断。有没有办法临时覆盖 sql_mode,或者 INSERT 语句的选项显式允许截断?我在文档或谷歌搜索中找不到任何东西。
您可能会认为这是我应该禁用 MySQL 严格模式的副本吗?,但这个问题是在 2011 年,所以从那时起可能会有新的选择。另外,这个问题是关于一般模式的最佳实践,而不是关于在运行时覆盖的能力。
mysql - pymysql 插入 MariaDB 时添加了不可为空列的缺失值
在以下场景中,我期望的是一个异常,但我收到了警告:
我的脚本:
在外壳中:
执行后,col1
数据库中添加了一条等于 0 的记录。然后,我直接在 MariaDB 控制台中执行了查询。我得到了[HY000][1364] Field 'col1' doesn't have a default value
,并且没有插入任何记录。
我查了一下SQL_MODE
,SELECT @@GLOBAL.sql_mode global, @@SESSION.sql_mode session
得到:
它是如何在引擎 InnoDB 中发生的?
mysql - mysql 5.7 错误分组查询
收到此错误:
SELECT 列表的表达式 #2 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“mytable.pages.titleen”;这与 sql_mode=only_full_group_by 不兼容
如何修复错误?无法更改 sql_mode。
mysql - 为什么时间戳字段不能获得默认值?
我尝试以下更改表:
ALTER TABLE test MODIFY COLUMN a timestamp NULL DEFAULT '1970-01-01 00:00:01';
表结构为:
我的 sql_mode 是:
我得到的错误是:#1067 - Unknown error 1067
其他让我感到困惑的事情,为什么它没有显示实际错误?
mysql - 我尝试在 RDS 上运行的 MySQL 代码出现语法错误,但在相同版本的语法检查器中,它运行良好
所以我有一个带有 MySQL 5.6.37 引擎的 AWS RDS 实例,我正在使用 MySQL 5.6 版在 sqlfiddle.com 上检查我的代码语法。
我在 sqlfiddle 中输入的代码是
我连接到 rds 的代码使用的 jdbc 配置与这个人的堆栈溢出帖子非常相似:无法设置 spring.datasource.type
在我的代码中,我有
这种进行查询的通用格式在许多其他地方都有效,我不知道 AWS 的东西是否相关。
确切的错误是“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在“MTWRF”行附近使用的正确语法5"
php - Laravel 数据库严格模式
我不奇怪请帮帮我。
我的查询是:-Invoice::join('orders', 'orders.invoice_id', '=', 'invoices.id')->groupBy('invoices.id')->get();
然后我收到一个错误:语法错误或访问冲突:1055 'invoices.reference_number' is not in GROUP BY
当我根据错误更新查询时,查询是:-
现在查询工作,但在这种情况下,我不能使用select()
,它返回列在groupBy()
所以我做了谷歌然后发现如果我关闭数据库严格模式然后它会起作用然后我做了并且它工作得很好,但我不想关闭严格模式。
另外,我研究了数据库模式https://dev.mysql.com/doc/refman/5.5/en/faqs-sql-modes.html https://dev.mysql.com/doc/refman/5.5/ zh/sql-mode.html
然后我找到了查询:-SELECT @@GLOBAL.sql_mode; SELECT @@SESSION.sql_mode;
但结果是空白
如果我在数据库中做 -select * from invoices inner join orders on orders.invoice_id = invoices.id where invoices.deleted_at is null group by invoices.id
然后它工作正常意味着没有通过 mySQL 进行模式验证,它已经配置了 Laravel 的一面
另外,我在 laravel 文档中没有找到相关的数据库模式
所以,如果我做错了什么,请帮助我。
而且我还想知道在 laravel 中启用了谁的数据库严格模式验证,因为我想知道是什么严格验证给了我一个错误。
mysql - 如何在我的 Mac 上永久设置 SQL_MODE
我在我的 OsX 10.11 El Capitan 上安装了 MySql。如果我尝试开始我的查询,如果我的查询有 Group By,我会遇到一个奇怪的错误。
因此,如果我尝试从终端执行此查询:
我可以执行我的查询从来没有问题。现在,如果我尝试重新启动我的 macbook,我会遇到一些问题,我可以重新执行查询。
有什么方法可以永久修复这个 sql_mode 吗?
我必须打开“etc/mysql/my.cnf”文件,但我的 Mac 上没有这个文件。如何应用此更改?
mysql - MySQL only_full_group_by error
I am not a DBA and I inherited this query and i'm not quite sure why I'm getting a sql_mode=only_full_group_by
error. Especially since the error is talking about result.fullURL
and i don't see that in the query. Could someone please explain this to me?
Query
Error output
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'result.fullURL' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Thanks for any help!
mysql - MYSQL - SET SESSION sql_mode = '';" - 好主意?
我正在考虑设置 sql_mode=';' 的含义 或 sql_mode='' 在会话级别。
请跳过严格模式的安全注意事项及其优势。