[SQL] Query doris_1 start [ERR] 1105 - errCode = 2, detailMessage = Syntax error in line 25: `ID` varchar(20) CHARACTER SET utf8mb4 COLLAT... ^ Encountered: CHARACTER Expected: COMMA [ERR]
时间: 2024-03-09 18:45:15 浏览: 29
这个错误提示是因为在第25行的语句中,`ID`列的语法有误,缺少逗号。你需要在`ID`列的后面添加逗号,修改成正确的语法,例如:
```
`ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
```
这样就可以解决这个错误了。
相关问题
DROP TABLE IF EXISTS `aa_ccd`; CREATE TABLE `aa_ccd` ( `ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `CCDCODE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ICNNAME` varchar(107) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ISDISEASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `ENNAME` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `PARENTID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `YEAR` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `NOTE` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEFTSPACE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LIMITED` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL1` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL2` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL3` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `LEVEL4` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, PRIMARY KEY (`ID`) USING BTREE, INDEX `index1`(`CCDCODE`) USING BTREE, INDEX `index2`(`ICNNAME`) USING BTREE, INDEX `index_yes`(`YEAR`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; 这个建表sql在doris数据库执行时报错,[SQL] Query doris_2 start [ERR] 1105 - errCode = 2, detailMessage = Syntax error in line 25: `id` varchar(50) CHARACTER SET utf8mb4 COLLAT... ^ Encountered: CHARACTER Expected: COMMA [ERR] 这是为什么
根据报错信息,可以看到是在第25行出现了语法错误,缺少了逗号。具体来说,是因为在第24行的最后缺少了一个逗号,导致第25行的语句被解析为一个新的字段,而不是原本的字段属性。因此,应该在第24行最后加上逗号,即在 `LEVEL4` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL 后面加一个逗号,就可以解决这个问题了。
Doris报错 delete from op_re_st_vw_addr_segm_zl_his where day_id = DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00') (1105, 'errCode = 2, detailMessage = Right expr of binary predicate should be value')
这个错误通常是由于查询条件中使用了错误的语法,导致无法识别查询条件,或者查询条件的类型不正确。根据你的SQL语句,可能是因为`day_id`列的数据类型不是字符串类型,而你使用了字符串类型的日期作为查询条件。你可以尝试将日期转换为`day_id`列的数据类型,例如:
```
DELETE FROM op_re_st_vw_addr_segm_zl_his WHERE day_id = UNIX_TIMESTAMP(NOW() - INTERVAL MINUTE(NOW()) MINUTE);
```
这个查询语句中,`UNIX_TIMESTAMP`函数将当前时间转换为Unix时间戳,减去当前时间的分钟数可以得到当前小时的整点时间。这样就可以删除`day_id`等于当前整点时间的记录了。当然,如果`day_id`列的数据类型是字符串类型,你也可以使用`DATE_FORMAT`函数将当前时间格式化为字符串类型的日期,例如:
```
DELETE FROM op_re_st_vw_addr_segm_zl_his WHERE day_id = DATE_FORMAT(NOW() - INTERVAL MINUTE(NOW()) MINUTE, '%Y-%m-%d %H:00:00');
```
这个查询语句中,`DATE_FORMAT`函数将当前时间格式化为`YYYY-MM-DD HH:00:00`的字符串类型日期,然后将这个字符串类型日期与`day_id`列进行比较。