如何设置的sql_mode到值的列表

问题描述 投票:3回答:3

我试图用第二代云SQL,并想改变SQL模式。在UI,我只能设定的sql_mode从下拉列表中的一个值,而不是他们的倍数(例如,“STRICT_MODE_TRANS,ALLOW_INVALID_DATES”)。什么是完成,最好的办法?

干杯,安德烈斯

google-cloud-sql
3个回答
2
投票

这不是由谷歌云SQL支持现在。只能设置一个值。


11
投票

我知道这个帖子是1岁,但现在我偶然发现了这个时候我有一个的sql_mode问题,当我尝试使用5.7从MySQL 5.5迁移数据库,以谷歌SQL。虽然我知道,我们可以SET GLOBAL sql_mode=''我们想要的任何有效值,我花了时间放弃,并得出结论,我们不能对谷歌的Cloud SQL设置多个值。

谷歌只允许一个值上的sql_mode标志现在可以设置。如果你的问题涉及到消除ONLY_FULL_GROUP_BY(OP没有提到他为什么要自定义值)使用控制台传统的价值不删除的sql_mode的值的其余部分,或者gcloud sql instances patch <instance_name> --database-flags sql_mode=TRADITIONAL将从字符串的其余部分删除该值。

MySQL 5.7 Documentation

MySQL的5.7.4之前,以及在MySQL 5.7.8或更高版本,传统相当于STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER和NO_ENGINE_SUBSTITUTION。

我就只加这作为注释以上,但我不能因为缺少点又增加一个。


0
投票

另一种可能的解决方案是设置的sql_mode到HIGH_NOT_PRECEDENCE

一旦云SQL设置的sql_mode字符串将成为:

HIGH_NOT_PRECEDENCE

所有其它标志被删除!

我是从一个旧的项目来得那么这种解决方案可能不适用于所有工作,但似乎为我们很好地工作,再加上它的东西,可以迅速进行审判。

© www.soinside.com 2019 - 2024. All rights reserved.