问题标签 [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 - MySQL LEFT OUTER JOIN 选择最佳匹配而不更改 sql_mode
我正在尝试从 subject_inv 表中获取具有最佳匹配主题的学生列表。我的查询的问题是它需要更改 sql_mode。有没有办法在不更改 sql_mode 参数的情况下修改此查询。
它给了我以下错误。当我将 sql_mode 从“only_full_group_by”更改为其他时,它可能应该修复。
有没有办法在不改变 sql_mode 的情况下得到这个结果?
预期成绩:::
mysql - 创建 DATABASE 时的 SQL_MODE 和 TIME_ZONE
这些选项是什么意思,创建数据库时有哪些可能的选择?
mysql - 如何在不更改 SQL 模式的情况下在 MySQL 5.7 中处理 0000-00-00 00:00:00 日期时间
我最近切换到 MySQL 5.7,这会导致日期时间出现问题。我的数据库中有日期时间,默认值为0000-00-00 00:00:00
. MySQL 5.7 似乎不喜欢这种类型的默认值。我知道我可以设置sql_mode = ''
,但假设我不想这样做(坚持默认的严格模式),最好的方法是什么?
我可以先更新所有值:
然后编辑 datetime 字段以使用 NULL 作为默认值。
那会是未来的证明吗?我认为 MySQL 5.7 有理由禁止
0000-00-00 00:00:00
.
mysql - MySQL 复制在 Master 上具有 NULL-able 列,在 Slave 上具有 NOT NULL
我得到了定义了这样列的主表:INT DEFAULT NULL;
而从站将该列定义为NOT NULL;
. InnoDB 引擎。
两台服务器上的 SQL 模式为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
.
问题是:为什么 INSERT 到 Master 上的该列NULL
值在 Slave 上成功复制(插入“0”值)?(我希望它会失败)。
我什至采用了该语句并在 Slave 上运行它,它给出了预期的错误“column col cannot be null”。但是在复制时,同样的语句会成功......
希望得到答案 :) PS 对不起我的英语。
mysql - 如何在 MySQL 8 的 my.cnf 中设置 sql_mode?
我正在运行 MySQL 8.0.11 社区版。我需要将 sql_mode 设置为在 my.cnf 中排除 ONLY_FULL_GROUP_BY 以便它可以安全重启。我尝试了以下变体:
无论变量名为“sql_mode”还是“sql-mode”,它们都以相同的方式失败:
sql模式
似乎 mysqld 处理 my.cnf 并将 'sql_mode' 或 'sql-mode' 转换为 'sql_mode',然后它会拒绝!
问题是如何解决这个问题?
mysql - 关闭 STRICT_TRANS_TABLES 对我来说安全吗?
自 2014 年以来,我托管在外部站点上的 PHP/mySQL 后端一直运行良好。最近,它开始抛出“字段没有默认值”错误。
我检查了配置并发现STRICT_TRANS_TABLES
,在某些情况下,它会为没有默认值的字段提供这些错误。
我的问题是删除此配置值对我来说是否安全。它是 mySQL 5.5.5-10.3.12-MariaDB。
或者,我可以为所有内容提供默认值,但我不知道这些解决方案中的哪一个更有可能导致现有代码库停止正常工作。
mysql - 使用 sql_mode 在 mysql 中禁用 only_full_group_by
我已将我的数据库从旧版本迁移到新版本。
我现在有 mysql 版本 5.7.24。
我正在获取ERROR 1055 (sql_mode=only_full_group_by)
具有分组依据的查询。
我在全局变量和 my.cnf 文件中都设置了 sql_mode='' 并重新启动了 mysql 服务器。
仍然存在问题并得到相同的错误。
请帮我解决这个问题。
mysql - 一般错误:1364 禁用 STRICT_TRANS_TABLES
我有一个 Mariadb 10.2.26 服务器,禁用了“STRICT_TRANS_TABLES”模式。唯一启用的模式是“NO_ENGINE_SUBSTITUTION”。但即使这样,我也收到“一般错误:1364 字段''没有默认值”。有谁知道为什么?谢谢。
postgresql - 类似数据库中的不同 postgrese 行为
我将 PHP 7.1 与 Pgsql 9.2.24 一起使用。拥有两个相似的项目副本(生产和开发)和两个具有相同数据的相似数据库。但是查询在 GROUP BY 情况下的工作方式不同。
我尝试使用 SHOW ALL 查询检查所有 sql 设置,但没有发现任何区别。我知道,重写查询可以解决我的问题,但是使用 GROUP BY 运算符的代码太多。完整的 SQL 版本:x86_64-redhat-linux-gnu 上的 PostgreSQL 9.2.24,由 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) 编译,64 位。尝试运行 sql-query:
SELECT chr.*, usr.image, usr.first_name, usr.second_name, usr.last_activity, CASE WHEN MAX(chrm.created_at) IS NOT NUll THEN MAX(chrm.created_at) ELSE 0 END AS created_m, MAX(chrm.id) AS id_m FROM chat_rooms as chr LEFT JOIN users usr ON chr.author_id = usr.id LEFT JOIN chat_messages chrm ON chr.id = chrm.chat_id LEFT JOIN chat_rooms_user chru ON chr.id = chru.chat_rooms_id WHERE chru.user_id = 1104 AND chru.status = 1 AND ( chrm.status != 10 OR chrm.status IS NULL) AND chr.status = 1 GROUP BY chr.id, usr.id HAVING coalesce(COUNT(chrm.id),0) > 0 ORDER BY created_m DESC LIMIT 10 OFFSET 0
并得到错误(服务器状态 500):未捕获的异常:错误:列“chr.parent_id”必须出现在 GROUP BY 子句中或用于聚合函数中
其他数据库返回给我的不是错误,而是正确的数据结果。
mysql - 在 centos 7 中将 my.cnf 中的 sql_mode 设为空白仍然得到这与 sql_mode=only_full_group_by 不兼容
陷入 sql_mode 限制的问题。在 /etc/my.cnf 中进行了更改并重新启动 mysql.d 但得到相同的错误。
在没有 GROUP BY 的聚合查询中,SELECT 列表的表达式 #2 包含非聚合列 'gamenew.user_profiles.account_id';这与 sql_mode=only_full_group_by 不兼容
phpmyadmin在sql模式下有一个空白
我的mysql版本是5.7,CENTOS版本是7
该代码在我本地系统的 mysql 的最新版本中运行良好。我做了很多 SP,所以不能更喜欢这个链接 存储过程引发“与 sql_mode=only_full_group_by 不兼容”,尽管 sql_mode 为空白