我从一家开发公司订购了自定义的RP应用程序开发(不是很复杂).我希望它在GCP上运行(PHP代码/yii/的Cloud Run、SQL for SQL for SQL、云存储for文件).

DevOps表示:在Google Cloud SQL中,不可能禁用ONLY_UTE_BY,甚至不可能通过一些明确未建议的"黑客"来启用它.

开发人员:开发人员说他们需要禁用ONLY_UTE_BY. (该公司仅为Linux或Windows服务器开发,如果他们更改了它,它将无法在他们的Windos服务器上工作,这是完全不同的环境,对于这个请求需要完全不同的协议)

你能帮我找出谁是对的吗? (我不是一个简化者,但我想在稳定的环境下运行我的应用程序,例如gcp)

我试图要求开发人员添加他想用于分组的 Select 列表的文件. 但由于不是一名旁观者,我不确定这是否是正确的问题.

推荐答案

有两种方法可以回答这个问题:

  1. 始终可以更改sql_mode以省略ONLY_UTE_BY作为会话变量.客户端(即应用程序)可以在连接到数据库后执行此操作.该选项仅对该会话有效,但没有任何措施可以阻止应用程序对每个需要它的会话执行该选项.

  2. 在我看来,启用ONLY_UTE_BY模式总是更好的.禁用它会导致查询结果不明确的风险.我在回答这个问题时发布了一个例子来解释原因:

    Reason for Column is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause

    很难相信开发人员无法编写在启用ONLY_UTE_BY的情况下运行的正确代码.事实上,如果他们使用的数据库不是SQL、MariaDB或SQLite,那么甚至不可能禁用单值规则的强制执行(即使用PostgreSQL、Oracle、Microsoft SQL服务器或任何其他SQL数据库的开发人员几十年来一直遵循这一规则).这让我认为您的开发人员的SQL技能不是很好.

Php相关问答推荐

Symfony Monolog:使用多个格式化程序

根据在WooCommerce购物车和 checkout 中 Select 的送货方式显示快捷代码内容

如何更改数据表行背景 colored颜色

将变体设置字段添加到WooCommerce中的特定变量产品

如何在函数中定位WooCommerce产品循环

WooCommerce数量减号和加号图标未显示

通过访问单个产品页面更新WooCommerce产品元数据

SendGrid响应PHP

将SVG包含在另一个php生成的SVG中

根据WooCommerce中的客户计费国家/地区更改产品价格

在WooCommerce获取所有具有全球产品属性品牌的简单产品

如何在微软图形API中使用用户S访问令牌或基于租户ID的访问令牌?

在WooCommerce上设置简单和可变产品的最小订单量

除WooCommerce中的特定国家/地区外,有条件地要求填写邮政编码 checkout 字段

调用模型[App\Models\Employee]上未定义的关系[title]

PHP访问子数组列表出错结果和长度

Woocommerce 中为空时隐藏显示变体自定义字段数据

在 WordPress 中将自定义帖子类型永久链接设置为 root

htaccess Rewriterule 无法以任何方式工作

symfony/notifier + twig/inky-extra 在 dunglas/symfony-docker 中缺少 ext-xsl.