C#自定义迁移构建器PostgreSQL语法问题:拼接两列至新列
解决方案
错误的核心原因有两个:
USER是PostgreSQL的保留关键字,直接作为表名使用会触发语法错误,必须用双引号包裹- PostgreSQL中字符串拼接不能用
+,需要用||运算符
修改后的代码如下:
migrationBuilder.Sql(@" UPDATE ""USER"" SET FullName = FirstName || ' ' || LastName ");
额外提示
- 如果你的实际表名是小写(比如EF Core默认会将实体类
User映射为小写user表),请把""USER""改成""user"" - 如果
FirstName或LastName可能为NULL,建议用COALESCE处理空值,避免拼接结果为NULL:
UPDATE ""USER"" SET FullName = COALESCE(FirstName, '') || ' ' || COALESCE(LastName, '')
内容的提问来源于stack exchange,提问作者NeuSandeZ
相关产品推荐
相关产品推荐

