如何将sql_mode设置为值列表

cpu*_*ter 3 google-cloud-sql

我正在尝试使用第二代云sql并希望更改sql模式.在UI中,我只能将sql_mode设置为下拉列表中的一个值,但不能将其设置为多个(例如,"STRICT_MODE_TRANS,ALLOW_INVALID_DATES").实现这一目标的最佳方法是什么?

干杯,安德烈斯

小智 12

我知道这篇文章是1岁,但是当我尝试使用5.7将数据库从MySQL 5.5迁移到Google SQL时,当我遇到sql_mode问题时,我偶然发现了这个问题.虽然我知道我们可以SET GLOBAL sql_mode=''达到我们想要的任何有效价值,但我花了几个小时才放弃并得出结论,我们无法在Google Cloud SQL上设置多个值.

Google现在只允许在sql_mode标志上设置一个值.如果您的问题与删除ONLY_FULL_GROUP_BY(OP未提及他想自定义值的原因)有关,而不删除sql_mode的其余值,则使用控制台中的值TRADITIONAL或gcloud sql instances patch <instance_name> --database-flags sql_mode=TRADITIONAL将从字符串的其余部分中删除该值.

从MySQL 5.7文档:

在MySQL 5.7.4和MySQL 5.7.8及更高版本之前,TRADITIONAL相当于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.

我只会将此作为上述评论添加,但由于缺少积分,我暂时无法添加.