问题标签 [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.

0 投票
1 回答
1929 浏览

mysql - 无法将 sql_mode 设置为 none

我在 mac El Capitan 上使用如下所示的 5.7.9 版本。

我创建了一个文件 ~/.my.cnf 并添加了以下内容。

我重新启动了mysql并再次检查了sql_mode,但没有任何区别。我在这里做错了什么?

0 投票
1 回答
26 浏览

sunos - 如何配置 xemacs 以识别 .sql-mode 中指定的数据库?

我正在使用包含以下内容的 .sql-mode 文件运行 xemacs:

当我通过选择 Utilities->Interactive Mode->Use Association 登录到 xemacs 中的数据库时,它让我登录,但它没有获取数据库参数。例如,当我登录到“dev”时,它会登录,但是当我执行“select db_name()”时,它会生成 csdb 而不是 devbilling。它似乎正在选择与用户关联的默认数据库并忽略数据库参数。如何配置 xemacs 以便在选择该选项时获取 .sql-mode 中指定的数据库参数?

谢谢,

麦克风

0 投票
4 回答
5899 浏览

mysql - 为什么我不能永久更改 sql_mode?

我目前在 Windows 10 中使用 mysql server 5.6。在使用 mysql 时,不断出现错误,类似于“以下列没有默认值”我在互联网上读到,如果我改变我可以解决这个问题sql_mode。目前设置为

我从“mysql server 5.6”文件夹中的“my-default.ini”文件中获取了这个。我读了其他几个答案,说如果你想永久更改你的 sql_mode,你应该通过“my-default.ini”文件来完成。所以我所做的是,我以管理员身份运行记事本,然后浏览打开“my-default.ini”文件,该文件位于:

当我打开文件时,我修改了最后一行:

然后我保存了文件,关闭了它。然后通过使用任务管理器我重新启动了我的 sql 服务器:

这是应该永久修改我的 sql_mode 的整个过程。当我查看我的“my-default.ini”文件时,最后一行仍然被修改。但是如果我通过命令行登录mysql并使用以下代码查看我的sql_mode:

我知道我的 sql_mode 是

我希望(永久)删除所有这些,以使我的错误消失。如果我尝试使用以下命令从命令行修改 sql_mode:

它起作用了,但是当我重新启动 MySQL 时,一切都恢复了原来的样子。

有人可以告诉我我做错了什么吗?如果有另一种方法来解决这个问题。

0 投票
2 回答
3413 浏览

mysql - 第1行的数据太长mysql 5.6

我在生产中为我的应用程序使用 MySql 5.6。现在发生的情况是应用程序中的表单上有一个字段具有数据类型 char(2) 表,其输入类型的最大长度为 25。现在当用户输入超过 2 个字符并点击保存时,它会提示

在此处输入图像描述

所以我在这里搜索并发现,如果我需要做到这一点而没有错误,我需要将 MySQL 模式切换为不使用 STRICT,因此我sql_mode在 my.cnf 文件中进行了设置并尝试了。但我仍然遇到同样的错误。这是 my.cnf 的样子:

我正在使用 MySql 5.6 我没有得到我在这里缺少的东西。我希望那个错误消失。

编辑:

我做了SET GLOBAL sql_mode = ''然后做了show variables; 这里是输出: 在此处输入图像描述 但仍然得到同样的错误。

0 投票
0 回答
85 浏览

mysql - 新版本中组的 MySQL 问题

再会。

注意:在 MySQL 5.7.0 和更新版本中默认包含在 ONLY_FULL_GROUP_BY sql_mode

以下查询不是:

给出错误消息错误:SELECT 列表的表达式 #1 不在 GROUP BY 子句中,并且包含在功能上不依赖于 GROUP BY 子句中的列的非聚合列“ordered_list.id”;这与预期的 sql_mode = only_full_group_by 不兼容。

如果禁用此选项,我会得到以下结果:

5.7.x 之前的 MySQL 版本返回所需的结果:

源数据:

应该查看查询以选择适合每个组中最大日期的数据行吗?

0 投票
0 回答
189 浏览

php - 如何在 osx 10.11 重置 sql_mode

我有这个 sql_mode 的问题

我尝试了本教程,但没有结果。 如何摆脱 MySQL 中的 STRICT SQL 模式

我有一个干净的 osX 10.11 安装,我在本教程中手动安装了 apache、php 和 mysql ... https://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-osx -10-11-el-capitan/

我的版本阿帕奇:

mysql版本:

如果我首先将此 sql 代码插入到我的 phpmyadmin 中,那么一切正常,下次重新启动 os 或 mysql

我尝试在每个路径中设置 my.cnf 文件,如下所示,重启后仍然是同样的问题。

请帮忙。谢谢

0 投票
2 回答
841 浏览

mysql - MySQL 错误使用 DUPLICATE KEY UPDATE

我有一个项目,每周我都会导入几个包含不正确数据的大型数据集,例如重复的员工 ID,它们不应该重复。为了标记重复项,我尝试了以下代码:

INSERT 语句给了我错误,我看不出我做错了什么:

如果相关,我在 OS X 10.11.4、INNODB 引擎和 mysql_mode = '' 上运行 MySQL 5.7.12。我的目的是识别重复的 ID,以便我可以将它们转发给适当的 DBA 进行更正。

更新:我已将数据库默认设置如下:

0 投票
0 回答
359 浏览

my.cnf - MySQL sql_mode 有不需要的额外模式

我在 Mac 上,使用 MySQL 工作台,它告诉我 my.cnf 文件的位置在 /etc/ 中,我正在编辑它。我使用 chmod aw 设置了该文件的权限。

在那个 my.cnf 文件中,我有以下内容:

sql模式=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

这就是我想要的。但是,在重新启动 MySQL 并登录到它的命令行后,我得到了这个:

mysql> 选择@@sql_mode;

| @@sql_mode |

| 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 |

一组中的 1 行(0.00 秒)

正在添加其他模式。如果我运行以下(但不是持久的)命令: set global sql_mode= NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES;

这就是我在控制台上看到的:mysql> SELECT @@sql_mode;

| @@sql_mode |

| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |

正是我想要的。

谁能向我解释如何/为什么要添加这些额外的、不需要的 sql 模式?和/或我如何才能让这两种模式在没有其他模式的情况下持续存在?

0 投票
3 回答
793 浏览

mysql - MySQL won't start after changin my.cf

I'm working on a website and I'm getting this MySQL error:

"(...) this is incompatible with sql_mode=only_full_group_by (...)"

I've looked for an answer and I realized I had to change the sql_mode of my MySQL. So I've added the following line to /etc/mysql/my.cnf:

But now when I executed sudo service mysql restart it takes a really long time and then shows this message:

So now I removed that line and I have to execute the command by hand everytime I boot my PC.

Can anyone help me?

0 投票
0 回答
312 浏览

replication - 会话变量“sql_mode”的 MySQL 5.7 复制失败

v5.7 的 MySQL 文档说明了变量的复制

在 MySQL 5.7 中,以下会话变量被写入二进制日志,并在解析二进制日志时由复制从属设备兑现,无论日志记录格式如何: - sql_mode,(等)

但是,此功能似乎不起作用。我在我的开发设置中注意到了它,并使用mysql-sandbox重新安装了 1 个主服务器和 2 个从属服务器,并对其进行了仔细检查。

数据复制工作:

$HOME/sandboxes/rsandbox_mysql-5_7_13/m

$HOME/sandboxes/rsandbox_mysql-5_7_13/s1

但是会话变量 sql_mode 的复制不起作用:

$HOME/sandboxes/rsandbox_mysql-5_7_13/m

$HOME/sandboxes/rsandbox_mysql-5_7_13/s1

我在 MySQL Bug tracker 中搜索了相关的 bug,但没有发现任何问题。

我知道数据库管理员可以在每个数据库服务器上全局设置变量。但是,目前这不是一个选择。我需要将此功能作为 OpenSource PHP 框架的一部分,该框架应具有尽可能少的要求。