sql - 如何从 JSONB、VARCHAR 和 DATE 类型的列创建 Postgresql 生成的 JSONB 类型列
问题描述
我有一个包含 4 列的表 test_data,如下所示。我想用这些列的数据创建一个 JSONB 生成的列。以下是我尝试过但不断收到此错误的方法:
错误:生成表达式不是不可变的 SQL 状态:42P17
名称 VARCHAR(50) | 混合材料 JSONB | 其他东西 JSONB | 创建了 TIMESTAMP | 组合 JSONB |
---|---|---|---|---|
CREATE TABLE test_data(name VARCHAR(50), mixed_stuff JSONB, other_stuff JSONB, created TIMESTAMP WITHOUT TIMEZONE default(now() at time zone 'utc'));
ALTER TABLE test_data
add combined JSONB GENERATED ALWAYS AS (jsonb_build_object('name',name) || "mixed_stuff" || "other_stuff" || jsonb_build_object('created',created)) STORED;
解决方案
推荐阅读
- github - SonarQube 检查代码然后传递给 git/repo
- java - Aspose 单元格 - 在 Linux 机器上将 html 工作簿保存到 Xlsx 时结果不佳
- java - 如何在recyclerview(FirebaseRecyclerOptions)中为特定用户显示所有孩子
- xml - 通过 Internet Explorer 进行屏幕抓取
- azure-api-management - 向后端发送请求时,如何设置我的 apim 资源以验证来自请求标头的访问令牌?
- kotlin - 当我使用 rememberSaveable 时,哪些不同的变量会被解构?
- laravel - 渲染模型时,如何默认使用刀片模板而不是 json?
- c# - 如何减少变量的总和,同时保持变量之间的比例
- database - 需要将数据从“推送警报”插件导入另一个
- android - 如何旋转可组合并将进度侦听器添加到旋转中?