本地开发使用Postgresql 数据库,设置字段 SortId 为整型,Type 为IENTITY, BY DEFAULT,

通过EF Core插入数据时,本地测试通过,在vastbase数据库中报错, SortId为空的问题。
通过检索发现,是vastbase 数据库与postgresql 处理自增逻辑不同,(应该是vastbase 用的数据库太老吧)
AI建议 不要再使用 Identity。
直接改成 Sequence
通过如下脚本实现:
sql
CREATE SEQUENCE "PictureMarker_SortId_seq";
ALTER TABLE "PictureMarker"
ALTER COLUMN "SortId"
SET DEFAULT nextval('"PictureMarker_SortId_seq"');
再执行
sql
SELECT setval(
'"PictureMarker_SortId_seq"',
COALESCE((SELECT MAX("SortId") FROM "PictureMarker"),0)
);
验证:
sql
SELECT column_default
FROM information_schema.columns
WHERE table_name='PictureMarker'
AND column_name='SortId';
应输出
nextval(...) 之类的
此时,可以不修改后端代码,修复当前问题