PSQL 自定义类型插入结果 NULL
PSQL custom type insertion results NULL
我有一个 table 和一个复合类型:
CREATE TYPE server AS (
id text,
load int
)
CREATE TABLE live_log (
id serial PRIMARY KEY,
edges server[],
origins server[],
time time NOT NULL,
date date NOT NULL,
day text
)
我正在尝试在 live_log table:
中插入一行
INSERT INTO live_log(edges, origins, day, date, time)
VALUES (
ARRAY[ROW('edge1', 20),ROW('edge2', 30)]::server[],
ARRAY[ROW('origin1', 20),ROW('origin2', 30)]::server[],
'Monday',
'11-01-1994',
'11:00:30'
);
但是插入复合类型数组的结果仍然是空的,不管INSERT查询有什么变化。
任何人都可以帮我弄清楚我的 INSERT 有什么问题吗?
这很令人愉快。 DBeaver 出于某种原因拒绝显示复合类型数组。控制台 psql 界面显示更完整的输出。
编写一个 select 查询以将数组转换为文本,DBeaver 将为您提供服务器数组的表示形式:
SELECT
id,
edges::text,
origins::text,
time,
date,
day
FROM live_log
DBeaver 不知道如何表示 "server" 类型。据我所知,DBeaver 检查标准的 Postgres 类型,如果类型与其中之一不匹配,它会放弃并抛出以下内容:
org.jkiss.dbeaver.model.exec.DBCException: Can't resolve struct type 'server'
虽然您不能使用此方法直接打开 table 对象并查看 "Data" 选项卡,但您可以创建基于 table 的视图以便于检查。
此外,serge-rider 通常会响应通过 GitHub 提交的功能请求。不想代表他说话,但这可能是一个增强的案例。
我有一个 table 和一个复合类型:
CREATE TYPE server AS (
id text,
load int
)
CREATE TABLE live_log (
id serial PRIMARY KEY,
edges server[],
origins server[],
time time NOT NULL,
date date NOT NULL,
day text
)
我正在尝试在 live_log table:
中插入一行INSERT INTO live_log(edges, origins, day, date, time)
VALUES (
ARRAY[ROW('edge1', 20),ROW('edge2', 30)]::server[],
ARRAY[ROW('origin1', 20),ROW('origin2', 30)]::server[],
'Monday',
'11-01-1994',
'11:00:30'
);
但是插入复合类型数组的结果仍然是空的,不管INSERT查询有什么变化。
任何人都可以帮我弄清楚我的 INSERT 有什么问题吗?
这很令人愉快。 DBeaver 出于某种原因拒绝显示复合类型数组。控制台 psql 界面显示更完整的输出。
编写一个 select 查询以将数组转换为文本,DBeaver 将为您提供服务器数组的表示形式:
SELECT
id,
edges::text,
origins::text,
time,
date,
day
FROM live_log
DBeaver 不知道如何表示 "server" 类型。据我所知,DBeaver 检查标准的 Postgres 类型,如果类型与其中之一不匹配,它会放弃并抛出以下内容:
org.jkiss.dbeaver.model.exec.DBCException: Can't resolve struct type 'server'
虽然您不能使用此方法直接打开 table 对象并查看 "Data" 选项卡,但您可以创建基于 table 的视图以便于检查。
此外,serge-rider 通常会响应通过 GitHub 提交的功能请求。不想代表他说话,但这可能是一个增强的案例。