在postgresql的一列中添加数字范围(1..5)
我想在列中插入数字1到5的范围在postgresql的一列中添加数字范围(1..5),sql,postgresql,Sql,Postgresql,我想在列中插入数字1到5的范围 INSERT INTO public.npc(name, gold, info, id, quest_level) VALUES ('test',200,'do_that',1,(1..5) 我假设您的quest\u级别的数据类型为int[] CREATE TABLE public.npc( name text, gold int, info text, id int, quest_level int[] );
INSERT INTO public.npc(name, gold, info, id, quest_level)
VALUES ('test',200,'do_that',1,(1..5)
我假设您的
quest\u级别
的数据类型为int[]
CREATE TABLE public.npc(
name text,
gold int,
info text,
id int,
quest_level int[]
);
在这种情况下,您可以像这样插入值:
INSERT INTO public.npc (name, gold, info, id, quest_level) VALUES
('test',200,'do_that',1, (SELECT array_agg(g.i)
FROM generate_series(1,5) as g(i)));
如果quest\u level
有另一种数据类型,例如text
,则需要强制转换:
CREATE TABLE public.npc(
name text,
gold int,
info text,
id int,
quest_level text
);
INSERT INTO public.npc (name, gold, info, id, quest_level) VALUES
('test',200,'do_that',1, (SELECT array_agg(g.i) :: text
FROM generate_series(1,5) as g(i)));
如果要引入5行,则:
INSERT INTO public.npc(name, gold, info, id, quest_level)
SELECT 'test', 200, 'do_that', 1, gs.n
FROM generate_series(1, 5) gs(n);
它应该是什么数据类型?是要存储该范围内的所有值,还是仅存储该范围的开始和结束?如果是后者,请使用