starrocks报错:Right expr of binary predicate should be value

starrocks报错:Right expr of binary predicate should be value,可能是在sql中使用了delete from t_user_info_unique_key where dt >= to_date(date_trunc(‘month’, ‘2024-08-24’))这种包含函数或数值计算的where过滤。可以视情况将其改为delete from t_user_info_unique_key where dt >= ‘2024-08-01’ and dt <= '2024-08-24’或者delete from t_user_info_unique_key where dt >= ‘2024-08-01’。
starrocks的表类型分为主键表PRIMARY KEY,明细表DUPLICATE KEY,聚合表AGGREGATE KEY,更新表UNIQUE KEY,只有主键表支持完整的delete where语义,即支持在where后进行函数、数值计算或子查询。

  1. 使用更新表验证delete where
CREATE TABLE `t_user_info_unique_key` (
  `dt` date NULL COMMENT "分区日期",
  `uid` bigint NULL COMMENT "主键",
  `name` varchar(100) NULL COMMENT "姓名",
  `nickname` varchar(100) NULL COMMENT "昵称",
  `phone_number` varchar(20) NULL COMMENT "手机号",
  `gender` varchar(10) NULL COMMENT "性别",
  `birthday` date NULL COMMENT "出生日期",
  `is_delete` int NULL COMMENT "是否注销:0否 1是",
  `create_time` datetime NULL COMMENT "创建时间",
  `update_time` datetime NULL COMMENT "更新时间"
) ENGINE = OLAP
UNIQUE KEY(`dt`,`uid`)
COMMENT "用户信息表"
PARTITION BY RANGE(`dt`) (
  PARTITION p20240801 VALUES [("2024-08-01"), ("2024-08-02")),
  ...
  PARTITION p20240824 VALUES [("2024-08-24"), ("2024-08-25"))
)
DISTRIBUTED BY HASH(`uid`) BUCKETS 5
PROPERTIES (
  "replication_num" = "3",
  "dynamic_partition.enable" = "true",
  "dynamic_partition.time_unit" = "DAY",
  "dynamic_partition.time_zone" = "Asia/Shanghai",
  "dynamic_partition.start" = "-2147483648",
  "dynamic_partition.end" = "30",
  "dynamic_partition.prefix" = "p",
  "dynamic_partition.buckets" = "5",
  "dynamic_partition.history_partition_num" = "0",
  "in_memory" = "false",
  "storage_format" = "DEFAULT",
  "enable_persistent_index" = "false",
  "compression" = "LZ4"
);

delete from t_user_info_unique_key where dt >= to_date(date_trunc('month', '2024-08-24'))

删除失败
在这里插入图片描述

  1. 使用主键表验证delete where
CREATE TABLE `t_user_info_primary_key` (
  `dt` date COMMENT "分区日期",
  `uid` bigint COMMENT "主键",
  `name` varchar(100) NULL COMMENT "姓名",
  `nickname` varchar(100) NULL COMMENT "昵称",
  `phone_number` varchar(20) NULL COMMENT "手机号",
  `gender` varchar(10) NULL COMMENT "性别",
  `birthday` date NULL COMMENT "出生日期",
  `is_delete` int NULL COMMENT "是否注销:0否 1是",
  `create_time` datetime NULL COMMENT "创建时间",
  `update_time` datetime NULL COMMENT "更新时间"
) ENGINE = OLAP
PRIMARY KEY(`dt`,`uid`)
COMMENT "用户信息表"
PARTITION BY RANGE(`dt`) (
  PARTITION p20240801 VALUES [("2024-08-01"), ("2024-08-02")),
  ...
  PARTITION p20240824 VALUES [("2024-08-24"), ("2024-08-25"))
)
DISTRIBUTED BY HASH(`uid`) BUCKETS 5
PROPERTIES (
  "replication_num" = "3",
  "dynamic_partition.enable" = "true",
  "dynamic_partition.time_unit" = "DAY",
  "dynamic_partition.time_zone" = "Asia/Shanghai",
  "dynamic_partition.start" = "-2147483648",
  "dynamic_partition.end" = "30",
  "dynamic_partition.prefix" = "p",
  "dynamic_partition.buckets" = "5",
  "dynamic_partition.history_partition_num" = "0",
  "in_memory" = "false",
  "storage_format" = "DEFAULT",
  "enable_persistent_index" = "false",
  "compression" = "LZ4"
);

delete from t_user_info_primary_key where dt >= to_date(date_trunc('month', '2024-08-24'))

删除成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值