StarRocks建库建表SQL语法报错求助
问题排查与解决
报错的核心原因是你使用的flink-connector-starrocks1.2.3适配的是StarRocks 1.x系列版本,该版本的主键表语法规则和高版本不同,不支持将PRIMARY KEY()作为独立的表级选项放在ENGINE=olap之后,必须将主键定义嵌入字段列表中。
修正后的建表SQL有两种写法,任选其一即可:
写法1:直接在主键字段后声明PRIMARY KEY
CREATE DATABASE IF NOT EXISTS `DataSync`; CREATE TABLE IF NOT EXISTS `DataSync`.`Person` ( `PersonID` INT NOT NULL COMMENT "" PRIMARY KEY, `RegistrationNumber` INT NOT NULL COMMENT "" ) ENGINE=olap COMMENT "" DISTRIBUTED BY HASH(`PersonID`) BUCKETS 1 PROPERTIES ( "replication_num" = "3" );
写法2:将PRIMARY KEY()放在字段列表末尾(和MySQL语法一致)
CREATE DATABASE IF NOT EXISTS `DataSync`; CREATE TABLE IF NOT EXISTS `DataSync`.`Person` ( `PersonID` INT NOT NULL COMMENT "", `RegistrationNumber` INT NOT NULL COMMENT "", PRIMARY KEY(`PersonID`) ) ENGINE=olap COMMENT "" DISTRIBUTED BY HASH(`PersonID`) BUCKETS 1 PROPERTIES ( "replication_num" = "3" );
补充说明:
- StarRocks 2.x及以上版本才支持把
PRIMARY KEY()作为独立表级选项放在ENGINE之后,而你的连接器版本适配的旧版本不支持该语法。 - 无需调整反引号或字段定义,只要修正主键的声明位置就能解决报错。
内容的提问来源于stack exchange,提问作者Vishal Saxena
相关产品推荐
相关产品推荐

