【问题标题】:Implicit cast of string boolean to integer fails将字符串布尔值隐式转换为整数失败
【发布时间】:2021-10-27 23:07:31
【问题描述】:

我们有一个包含以下列的表格

`IsDeleted` bit(1) NOT NULL DEFAULT FALSE

这些在我们的非生产环境和生产环境中都按预期工作

select * from mytable where IsDeleted = 0;
select * from mytable where IsDeleted = 1;

这些语句在非 prod 中有效,但在 prod 中无效。

select * from mytable where IsDeleted = '0';
select * from mytable where IsDeleted = '1';

在生产环境中,这两个语句都不返回任何行。 (虽然数据库中有很多行)

所有环境都是 Aurora Serverless v1 (MySql 5.6) 环境之间的全局变量/数据库选项没有差异。

不确定这是 Aurora、Serverless 还是 MySQL 特有的。

【问题讨论】:

    标签: mysql amazon-aurora mysql-5.6 aws-aurora-serverless


    【解决方案1】:

    事实证明,生产环境中有一个为表定义的索引,其中 IsDeleted 作为前导键,而在我们的非生产环境中不存在。

    删除该索引允许使用隐式转换的查询开始工作。

    我很好奇这是按设计工作还是某些已知错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 2012-03-10
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多