请问如果是SR表格设置了自增列作为主键ID的话,如何通过 Flink DataStream 写入数据呢?该主键没有赋值 ,则会报NULL value in auto increment column 'FID 这个错误,FID是自增ID
TableSchema schema = TableSchema.builder()
.field(“FTime”, DataTypes.STRING().notNull())
.field(“FID”, DataTypes.BIGINT().notNull())
.field(“FUserID”, DataTypes.STRING().notNull())
.primaryKey(“FTime”,“FID”).build();
…
@Override
public void accept(Object[] internalRow, RowData rowData) {
internalRow[0] = rowData.time;
internalRow[2] = rowData.userID;
internalRow[internalRow.length - 1] = StarRocksSinkOP.UPSERT.ordinal();
}
表格如下:
CREATE TABLE t_xxx
(
FTime
DATETIME NOT NULL DEFAULT ‘1970-01-01 08:00:01’,
FID
BIGINT NOT NULL AUTO_INCREMENT,
FUserID
VARCHAR(128) NOT NULL DEFAULT ‘’ ,
) ENGINE=OLAP
PRIMARY KEY (FTime
,FID
)
PARTITION BY RANGE(FTime
) (
PARTITION p202412 VALUES LESS THAN (“2025-01-01”)
)
DISTRIBUTED BY HASH(FID)
PROPERTIES (
“dynamic_partition.enable” = “true”,
“dynamic_partition.time_unit” = “MONTH”,
“dynamic_partition.end” = “3”,
“dynamic_partition.prefix” = “p”,
“dynamic_partition.buckets” = “32”,
“dynamic_partition.history_partition_num” = “0”,
“replication_num” = “3”
)