|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
select * from stationseries;
|
select * from sitepoint order by gid;
|
update sitepoint set sitename='轮南首站' where gid=55;
|
------------------------------------------------------------------------------ SQL语句
|
select * from data_dir;
|
select * from meta_data;
|
select table_name as name from data_dictionary group by table_name;
|
update meta_data set create_time=CURRENT_TIMESTAMP,create_user='admin' where 1=1; -- CURRENT_TIME,CURRENT_DATE
|
|
select * from data_files;
|
select * from style_data; commit;
|
delete from style_data where id > 22;
|
select * from data_dictionary order by id;
|
select *,queryLevel(path_id) as path from meta_data;
|
select queryLevel(2005);
|
|
select count(*) from meta_data where Upper(name) like '%A%';
|
select *,queryLevel(path_id) path from meta_data where Upper(name) like '%A%' order by id limit 2 offset 0;
|
|
alter table style_data add column path varchar(255); comment on column style_data.path is '存储路径';
|
alter table style_data add column img varchar(255); comment on column style_data.img is '预览图片';
|
|
INSERT INTO public.meta_data(
|
name, path_id, create_time, create_user, type, format, up_unit, status, version, x_min, y_min, x_max, y_max, coor_sys, accuracy, operation, remarks, s_url)
|
VALUES ('SITEPOINT.shp',2007, CURRENT_TIMESTAMP, 'admin', 'SHP', '.shp','设计院/勘察室','正常', 'v1.0', 0, 0, 0, 0, 'CGCS200', '1:2000', 'upload', '', '');
|
------------------------------------------------------------------------------ 数据目录
|
DROP TABLE IF EXISTS public.data_dir;
|
|
CREATE TABLE public.data_dir
|
(
|
id integer,
|
name character varying(60),
|
pid integer NOT NULL,
|
oid integer DEFAULT 1,
|
PRIMARY KEY (id)
|
);
|
|
COMMENT ON TABLE public.data_dir IS '数据目录';
|
COMMENT ON COLUMN public.data_dir.id IS 'ID';
|
COMMENT ON COLUMN public.data_dir.name IS '名称';
|
COMMENT ON COLUMN public.data_dir.pid IS '父节点';
|
COMMENT ON COLUMN public.data_dir.oid IS '序号';
|
|
SELECT COALESCE(MAX(id),1) FROM public.data_dir;
|
select * from public.data_dir;
|
|
DELETE FROM public.data_dir where id<1000;
|
SELECT id,name,pid,oid FROM public.data_dir order by id;
|
------------------------------------------------------------------------------ 上传文件
|
DROP TABLE IF EXISTS public.data_files;
|
|
create table public.data_files
|
(
|
id serial primary key,
|
mid integer,
|
guid varchar(40),
|
name varchar(255),
|
ext varchar(10),
|
path varchar(1024),
|
subs varchar(1024),
|
remark varchar(1024)
|
);
|
|
COMMENT ON TABLE public.data_files IS '上传文件';
|
COMMENT ON COLUMN public.data_files.id IS 'ID';
|
COMMENT ON COLUMN public.data_files.mid IS '元数据ID';
|
COMMENT ON COLUMN public.data_files.guid IS 'GUID';
|
COMMENT ON COLUMN public.data_files.name IS '名称';
|
COMMENT ON COLUMN public.data_files.ext IS '扩展名';
|
COMMENT ON COLUMN public.data_files.path IS '路径';
|
COMMENT ON COLUMN public.data_files.subs IS '子文件';
|
COMMENT ON COLUMN public.data_files.remark IS '备注';
|
|
select * from data_files;
|
------------------------------------------------------------------------------ 查询层级
|
with recursive rs as(
|
select id,name,pid,oid from public.data_dir where id = 2005
|
union
|
select a.id,a.name,a.pid,a.oid from public.data_dir a, rs b where a.id=b.pid
|
) select id,name,pid,oid FROM rs order by id,oid;
|
|
|
CREATE OR REPLACE FUNCTION queryLevel(id INTEGER)
|
RETURNS VARCHAR as $$
|
declare
|
str varchar='';
|
rec varchar; -- public.data_dir%ROWTYPE;
|
begin
|
for rec in execute 'with recursive rs as(' ||
|
'select id,name,pid,oid from public.data_dir where id=' || id ||
|
' union select a.id,a.name,a.pid,a.oid from public.data_dir a, rs b where a.id=b.pid '||
|
') select name FROM rs order by id,oid'
|
loop
|
str = str || '\' || rec; -- rec.name;
|
end loop;
|
|
if (char_length(str) > 1) then
|
str = SUBSTRING(str, 2);
|
end if;
|
|
return str;
|
end;
|
$$ LANGUAGE PLPGSQL;
|
|
-- 中俄东线管道工程南段\勘察数据\基础地质\区域地质
|
select queryLevel(2005);
|
|
select id,name,pid,oid,queryLevel(id) from data_dir where 1=1 order by id limit 10;
|
|
------------------------------------------------------------------------------ 查询层级ID
|
--drop function queryDir(id INTEGER);
|
CREATE OR REPLACE FUNCTION queryDir(id INTEGER)
|
RETURNS integer[] as $$
|
declare
|
ids integer[];
|
sid integer;
|
begin
|
for sid in execute 'with recursive rs as(' ||
|
'select id,pid from public.data_dir where id=' || id ||
|
' union select a.id,a.pid from public.data_dir a, rs b where a.pid=b.id '||
|
') select id FROM rs order by id'
|
loop
|
select array_append(ids, sid) into ids;
|
end loop;
|
|
return ids;
|
end;
|
$$ LANGUAGE PLPGSQL;
|
|
-- {2003,2004,2005,2006,2007,2008,2009}
|
select queryDir(2003);
|
|
select * from data_dir order by id;
|
select * from meta_data where (path_id = ANY(array[2001,2002,2003,2005]));
|
select * from meta_data where (path_id = ANY((select queryDir(2005))::integer[])) order by id;
|
select * from meta_data where path_id=ANY(queryDir(2005)) order by id;
|
------------------------------------------------------------------------------
|