- 浏览: 245347 次
-
最新评论
存储过程实例:
需求:
思路:建立存储过程
代码逻辑:
1、先清空缓存表t_cert_sample_tmp;
2、获取列表, 查询语句:
SELECT cert_id
FROM t_cert_state where is_export=1 and check_state=1 and ylf_export=0 group by cert_id;
3、循环计算单个cert_id的方法:
1)如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5
sqlsexec='select sample_md5 from t_cert_sample where cert_id=' || cert_id || ' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5) limit 1';
2)如果证书修改后状态不是'W':
步骤1:优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id=' || cert_id || 'and t1.sample_md5=t2.sample_hash limit 1';
步骤2:如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id=' || cert_id || ' and t1.sample_md5=t2.sample_hash limit 1';
4、将证书id和刚刚获取到的样本MD5,插入到缓存表t_cert_sample_tmp(对应字段分别为cert_id和sample_md5)
建表:
CREATE TABLE t_cert_sample_tmp
(
id serial NOT NULL primary key,
cert_id integer NOT NULL,
sample_md5 character varying(41) NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE t_cert_sample_tmp OWNER TO postgres;
GRANT ALL ON TABLE t_cert_sample_tmp TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE t_cert_sample_tmp TO sqluser;
GRANT SELECT ON TABLE t_cert_sample_tmp TO fenxi;
grant SELECT, UPDATE ON sequence t_cert_sample_tmp_id_seq to sqluser;
--描述
COMMENT ON TABLE t_cert_sample_tmp IS '存放捕获判定分析已审核证书界面MD5实例数据';
COMMENT ON COLUMN t_cert_sample_tmp .cert_id IS '证书id';
COMMENT ON COLUMN t_cert_sample_tmp .sample_md5 IS '样本的md5值';
以下几种其实实现的是不同的结果,可以仔细研究下
实现:
-- Function: cert_sample_tmp()
-- DROP FUNCTION cert_sample_tmp();
CREATE OR REPLACE FUNCTION cert_sample_tmp()
RETURNS text AS
$BODY$
DECLARE
sqlsexec character varying :='';
sqlsexec1 character varying :='';
sqlsexec2 character varying :='';
sqlsexec3 character varying :='';
insexec character varying :='';
tmp_hash varchar(32);
r record;
r1 record;
r2 record;
r3 record;
BEGIN
------------------------------------------
----函数功能:优化捕获分析判定系统已审核证书界面md5取值逻辑,并提高页面加载性能
------------------------------------------
sqlsexec = 'truncate table t_cert_sample_tmp;';
execute sqlsexec;
----只取最新修改的一条记录
sqlsexec = 'select a.cert_id,a.later_state from
(select cert_id,later_state,record_time from t_cert_state where is_export=1 and check_state=1 and ylf_export=0 )a,
(select cert_id,max(record_time) as max_record_time from t_cert_state where is_export=1 and check_state=1 and ylf_export=0 group by cert_id)b
where a.record_time=b.max_record_time and a.cert_id=b.cert_id;';
for r in execute sqlsexec
loop
---如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5,将证书对应的hash取一条插入t_cert_sample_tmp表中
if r.later_state='W' then
sqlsexec1='select sample_md5,cert_id from t_cert_sample where cert_id='''|| r.cert_id ||''' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5) limit 1';
raise notice '%',sqlsexec1;
execute sqlsexec1 into r1;
if r1.sample_md5 is not null then
tmp_hash = r1.sample_md5;
end if;
else
----如果证书修改后状态不是'W':1.优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec2='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id='''|| r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec2;
execute sqlsexec2 into r2;
if r2.sample_md5 is not null then
tmp_hash = r2.sample_md5;
else
----2.如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec3='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id='''||r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec3;
execute sqlsexec3 into r3;
if r3.sample_md5 is not null then
tmp_hash = r3.sample_md5;
end if;
end if;
end if;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
end loop;
RETURN 'DONE';
exception when others then
RAISE EXCEPTION '(%)', SQLERRM;
return 'error';
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION cert_sample_tmp()
OWNER TO postgres;
GRANT EXECUTE ON FUNCTION cert_sample_tmp() TO public;
GRANT EXECUTE ON FUNCTION cert_sample_tmp() TO postgres;
GRANT EXECUTE ON FUNCTION cert_sample_tmp() TO sqluser;
======================================================================
DECLARE
sqlsexec character varying :='';
sqlsexec1 character varying :='';
sqlsexec2 character varying :='';
sqlsexec3 character varying :='';
insexec character varying :='';
tmp_hash varchar(32);
r record;
r1 record;
r2 record;
r3 record;
BEGIN
------------------------------------------
----函数功能:优化捕获分析判定系统已审核证书界面md5取值逻辑,并提高页面加载性能(每个证书下面只显示一个样本hash)
------------------------------------------
sqlsexec = 'truncate table t_cert_sample_tmp;';
execute sqlsexec;
sqlsexec = 'SELECT distinct cert_id FROM t_cert_state where is_export=1 and check_state=1 and ylf_export=0';
for r in execute sqlsexec
loop
sqlsexec1='select sample_md5,cert_id from t_cert_sample where cert_id='''|| r.cert_id ||''' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5) limit 1';
raise notice '%',sqlsexec1;
execute sqlsexec1 into r1;
---如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5,将证书对应的所有hash都逐条插入t_cert_sample_tmp表中
if r1.sample_md5 is not null then
tmp_hash = r1.sample_md5;
else
----如果证书修改后状态不是'W':1.优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec2='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id='''|| r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec2;
execute sqlsexec2 into r2;
if r2.sample_md5 is not null then
tmp_hash = r2.sample_md5;
else
----2.如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec3='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id='''||r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec3;
execute sqlsexec3 into r3;
if r3.sample_md5 is not null then
tmp_hash = r3.sample_md5;
end if;
end if;
end if;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
end loop;
RETURN 'DONE';
exception when others then
RAISE EXCEPTION '(%)', SQLERRM;
return 'error';
END
====================================================================================
DECLARE
sqlsexec character varying :='';
sqlsexec1 character varying :='';
sqlsexec2 character varying :='';
sqlsexec3 character varying :='';
insexec character varying :='';
tmp_hash varchar(32);
r record;
r1 record;
r2 record;
r3 record;
BEGIN
------------------------------------------
----函数功能:优化捕获分析判定系统已审核证书界面md5取值逻辑,并提高页面加载性能(每个证书下面满足条件的hash都显示出来)
------------------------------------------
sqlsexec = 'truncate table t_cert_sample_tmp;';
execute sqlsexec;
sqlsexec = 'SELECT distinct cert_id FROM t_cert_state where is_export=1 and check_state=1 and ylf_export=0';
for r in execute sqlsexec
loop
sqlsexec1='select sample_md5,cert_id from t_cert_sample where cert_id='''|| r.cert_id ||''' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5)';
raise notice '%',sqlsexec1;
for r1 in execute sqlsexec1
loop
---如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5,将证书对应的所有hash都逐条插入t_cert_sample_tmp表中
if r1.sample_md5 is not null then
tmp_hash = r1.sample_md5;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r1.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
else
----如果证书修改后状态不是'W':1.优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec2='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id='''|| r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec2;
execute sqlsexec2 into r2;
if r2.sample_md5 is not null then
tmp_hash = r2.sample_md5;
else
----2.如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec3='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id='''||r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec3;
execute sqlsexec3 into r3;
if r3.sample_md5 is not null then
tmp_hash = r3.sample_md5;
end if;
end if;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
end if;
end loop;
end loop;
RETURN 'DONE';
exception when others then
RAISE EXCEPTION '(%)', SQLERRM;
return 'error';
END
========================================
需求:
思路:建立存储过程
代码逻辑:
1、先清空缓存表t_cert_sample_tmp;
2、获取列表, 查询语句:
SELECT cert_id
FROM t_cert_state where is_export=1 and check_state=1 and ylf_export=0 group by cert_id;
3、循环计算单个cert_id的方法:
1)如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5
sqlsexec='select sample_md5 from t_cert_sample where cert_id=' || cert_id || ' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5) limit 1';
2)如果证书修改后状态不是'W':
步骤1:优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id=' || cert_id || 'and t1.sample_md5=t2.sample_hash limit 1';
步骤2:如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id=' || cert_id || ' and t1.sample_md5=t2.sample_hash limit 1';
4、将证书id和刚刚获取到的样本MD5,插入到缓存表t_cert_sample_tmp(对应字段分别为cert_id和sample_md5)
建表:
CREATE TABLE t_cert_sample_tmp
(
id serial NOT NULL primary key,
cert_id integer NOT NULL,
sample_md5 character varying(41) NOT NULL
)
WITH (
OIDS=FALSE
);
ALTER TABLE t_cert_sample_tmp OWNER TO postgres;
GRANT ALL ON TABLE t_cert_sample_tmp TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE t_cert_sample_tmp TO sqluser;
GRANT SELECT ON TABLE t_cert_sample_tmp TO fenxi;
grant SELECT, UPDATE ON sequence t_cert_sample_tmp_id_seq to sqluser;
--描述
COMMENT ON TABLE t_cert_sample_tmp IS '存放捕获判定分析已审核证书界面MD5实例数据';
COMMENT ON COLUMN t_cert_sample_tmp .cert_id IS '证书id';
COMMENT ON COLUMN t_cert_sample_tmp .sample_md5 IS '样本的md5值';
以下几种其实实现的是不同的结果,可以仔细研究下
实现:
-- Function: cert_sample_tmp()
-- DROP FUNCTION cert_sample_tmp();
CREATE OR REPLACE FUNCTION cert_sample_tmp()
RETURNS text AS
$BODY$
DECLARE
sqlsexec character varying :='';
sqlsexec1 character varying :='';
sqlsexec2 character varying :='';
sqlsexec3 character varying :='';
insexec character varying :='';
tmp_hash varchar(32);
r record;
r1 record;
r2 record;
r3 record;
BEGIN
------------------------------------------
----函数功能:优化捕获分析判定系统已审核证书界面md5取值逻辑,并提高页面加载性能
------------------------------------------
sqlsexec = 'truncate table t_cert_sample_tmp;';
execute sqlsexec;
----只取最新修改的一条记录
sqlsexec = 'select a.cert_id,a.later_state from
(select cert_id,later_state,record_time from t_cert_state where is_export=1 and check_state=1 and ylf_export=0 )a,
(select cert_id,max(record_time) as max_record_time from t_cert_state where is_export=1 and check_state=1 and ylf_export=0 group by cert_id)b
where a.record_time=b.max_record_time and a.cert_id=b.cert_id;';
for r in execute sqlsexec
loop
---如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5,将证书对应的hash取一条插入t_cert_sample_tmp表中
if r.later_state='W' then
sqlsexec1='select sample_md5,cert_id from t_cert_sample where cert_id='''|| r.cert_id ||''' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5) limit 1';
raise notice '%',sqlsexec1;
execute sqlsexec1 into r1;
if r1.sample_md5 is not null then
tmp_hash = r1.sample_md5;
end if;
else
----如果证书修改后状态不是'W':1.优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec2='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id='''|| r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec2;
execute sqlsexec2 into r2;
if r2.sample_md5 is not null then
tmp_hash = r2.sample_md5;
else
----2.如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec3='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id='''||r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec3;
execute sqlsexec3 into r3;
if r3.sample_md5 is not null then
tmp_hash = r3.sample_md5;
end if;
end if;
end if;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
end loop;
RETURN 'DONE';
exception when others then
RAISE EXCEPTION '(%)', SQLERRM;
return 'error';
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION cert_sample_tmp()
OWNER TO postgres;
GRANT EXECUTE ON FUNCTION cert_sample_tmp() TO public;
GRANT EXECUTE ON FUNCTION cert_sample_tmp() TO postgres;
GRANT EXECUTE ON FUNCTION cert_sample_tmp() TO sqluser;
======================================================================
DECLARE
sqlsexec character varying :='';
sqlsexec1 character varying :='';
sqlsexec2 character varying :='';
sqlsexec3 character varying :='';
insexec character varying :='';
tmp_hash varchar(32);
r record;
r1 record;
r2 record;
r3 record;
BEGIN
------------------------------------------
----函数功能:优化捕获分析判定系统已审核证书界面md5取值逻辑,并提高页面加载性能(每个证书下面只显示一个样本hash)
------------------------------------------
sqlsexec = 'truncate table t_cert_sample_tmp;';
execute sqlsexec;
sqlsexec = 'SELECT distinct cert_id FROM t_cert_state where is_export=1 and check_state=1 and ylf_export=0';
for r in execute sqlsexec
loop
sqlsexec1='select sample_md5,cert_id from t_cert_sample where cert_id='''|| r.cert_id ||''' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5) limit 1';
raise notice '%',sqlsexec1;
execute sqlsexec1 into r1;
---如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5,将证书对应的所有hash都逐条插入t_cert_sample_tmp表中
if r1.sample_md5 is not null then
tmp_hash = r1.sample_md5;
else
----如果证书修改后状态不是'W':1.优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec2='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id='''|| r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec2;
execute sqlsexec2 into r2;
if r2.sample_md5 is not null then
tmp_hash = r2.sample_md5;
else
----2.如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec3='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id='''||r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec3;
execute sqlsexec3 into r3;
if r3.sample_md5 is not null then
tmp_hash = r3.sample_md5;
end if;
end if;
end if;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
end loop;
RETURN 'DONE';
exception when others then
RAISE EXCEPTION '(%)', SQLERRM;
return 'error';
END
====================================================================================
DECLARE
sqlsexec character varying :='';
sqlsexec1 character varying :='';
sqlsexec2 character varying :='';
sqlsexec3 character varying :='';
insexec character varying :='';
tmp_hash varchar(32);
r record;
r1 record;
r2 record;
r3 record;
BEGIN
------------------------------------------
----函数功能:优化捕获分析判定系统已审核证书界面md5取值逻辑,并提高页面加载性能(每个证书下面满足条件的hash都显示出来)
------------------------------------------
sqlsexec = 'truncate table t_cert_sample_tmp;';
execute sqlsexec;
sqlsexec = 'SELECT distinct cert_id FROM t_cert_state where is_export=1 and check_state=1 and ylf_export=0';
for r in execute sqlsexec
loop
sqlsexec1='select sample_md5,cert_id from t_cert_sample where cert_id='''|| r.cert_id ||''' and not exists (select sample_hash from t_sfa_sample where state=-1
and sample_hash=t_cert_sample.sample_md5) and exists (select sample_hash from t_white where sample_state=''G'' and sample_hash=t_cert_sample.sample_md5)';
raise notice '%',sqlsexec1;
for r1 in execute sqlsexec1
loop
---如果证书修改后状态为'W':取状态为G且未进入筛分系统的样本MD5,将证书对应的所有hash都逐条插入t_cert_sample_tmp表中
if r1.sample_md5 is not null then
tmp_hash = r1.sample_md5;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r1.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
else
----如果证书修改后状态不是'W':1.优先查黑表,如果此证书下有黑样本,则取该证书下默认第一例黑样本MD5
sqlsexec2='select sample_md5 from t_cert_sample t1,t_black t2 where t1.cert_id='''|| r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec2;
execute sqlsexec2 into r2;
if r2.sample_md5 is not null then
tmp_hash = r2.sample_md5;
else
----2.如果黑表没有样本,则再查白表,取该证书下默认第一例样本MD5
sqlsexec3='select sample_md5 from t_cert_sample t1,t_white t2 where t1.cert_id='''||r.cert_id ||''' and t1.sample_md5=t2.sample_hash limit 1';
raise notice '%',sqlsexec3;
execute sqlsexec3 into r3;
if r3.sample_md5 is not null then
tmp_hash = r3.sample_md5;
end if;
end if;
insexec = 'insert into t_cert_sample_tmp(cert_id,sample_md5) values ('''||r.cert_id||''','''||tmp_hash||''');';
raise notice '%',insexec;
execute insexec;
end if;
end loop;
end loop;
RETURN 'DONE';
exception when others then
RAISE EXCEPTION '(%)', SQLERRM;
return 'error';
END
========================================
发表评论
-
pg 锁
2016-01-14 16:26 0pg 锁 ... -
postgresql 的三类日志
2016-01-14 15:59 18562一、PostgreSQL有3种日志: 1)pg_log(数据 ... -
pg存储过程--创建分区表
2016-01-13 15:46 01)将普通表改成按时间字段分区表 调用select fun_c ... -
pg常用自制shell脚本-tina
2016-01-13 15:30 49811)小型监控: 1.在pg库主机上部署,每5分钟执行一次,插入 ... -
postgresql 时间类型和相关函数
2016-01-13 10:41 5480今天来好好学习一下postgresql涉及时间的字段类型和一些 ... -
pg 表空间
2016-01-07 16:28 3134一、说明 在数据库运维工作中,经常会有数据目录使用率较高 ... -
pg 定期vacuum和reindex
2016-01-07 14:56 8639定期vacuum和reindex: 一 ... -
pg 序列
2016-01-06 16:58 1636一、简介 一个序列对象通常用于为行或者表生成唯一的标识符。 ... -
pg 简单备份和恢复
2016-01-06 15:53 3793pg的备份和恢复 pg_dump ... -
ERROR: invalid page header in block 27073 of relation base/21078/45300926
2016-01-06 15:12 2157突然断网,检查后通知我们UPS断电,db所在主机重启 1、连上 ... -
pg_cancel_backend()和pg_terminate_backend()
2016-01-05 17:42 3566pg_cancel_backend()和pg_terminat ... -
canceling statement due to conflict with recovery
2016-01-05 17:12 1731报错: canceling statement due to ... -
postgresql dblink 使用
2015-12-31 14:33 2067dblink的使用 pg的跨库查询工具 select dbli ... -
root用户不能使用psql或者pg_dump等pg命令
2015-12-24 14:40 7078root用户不能使用psql或者pg_dump等pg命令 [ ... -
postgresql新建库2个常见报错
2015-12-22 16:43 6335今天使用pg建库发现两个报错: ERROR: new c ... -
安装postgresql 9.1.1
2015-12-22 16:25 649安装postgresql 9.1.1 ---版本自选,步骤相同 ... -
pgbadger监控安装和使用
2015-12-21 10:01 2051pgbadger监控安装和使用 https://github ... -
oracle,postgresql,mysql一些使用上的区别记录
2015-12-16 11:38 01.限制行数: select * from ta where ... -
pg 函数sfa_tmp_sleep()执行越来越慢-sql分析
2015-12-11 09:48 691pg 函数sfa_tmp_sleep()执行越来越慢 ... -
pgpool 主从流复制模式下的安装使用
2015-12-11 09:50 4139pgpool-II 是一个位于 PostgreSQL 服务器和 ...
相关推荐
- **使用临时表**:创建只存在于当前会话中的表。 - **视图**:创建虚拟表以简化查询。 - **外键约束**:确保引用完整性。 以上是《PostgreSQL从菜鸟到专家》的部分内容概览。本书详细介绍了PostgreSQL的基础知识、...
在某些情况下,如在Windows环境下,可能会遇到“无法打开存储临时表的临时数据库文件”的错误。这时,可以通过设置`putenv()`函数指定临时文件夹的位置,例如: ```php putenv("TMP=C:/temp"); ``` 最后,记得使用...
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Python的KMeans和EM算法结合图像分割项目 ## 项目简介 本项目结合KMeans聚类和EM(期望最大化)算法,实现对马赛克图像的精准分割。通过Gabor滤波器提取图像的多维特征,并利用KMeans进行初步聚类,随后使用EM算法优化聚类结果,最终生成高质量的分割图像。 ## 项目的主要特性和功能 1. 图像导入和预处理: 支持导入马赛克图像,并进行灰度化、滤波等预处理操作。 2. 特征提取: 使用Gabor滤波器提取图像的多维特征向量。 3. 聚类分析: 使用KMeans算法对图像进行初步聚类。 利用KMeans的聚类中心初始化EM算法,进一步优化聚类结果。 4. 图像生成和比较: 生成分割后的图像,并与原始图像进行比较,评估分割效果。 5. 数值比较: 通过计算特征向量之间的余弦相似度,量化分割效果的提升。 ## 安装使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备:
HCIP第一次作业:静态路由综合实验
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文详细介绍了Johnson-SU分布的参数计算与优化过程,涵盖位置参数γ、形状参数δ、尺度参数ξ和伸缩参数λ的计算方法,并实现了相应的Python代码。文中首先导入必要的库并设置随机种子以确保结果的可复现性。接着,分别定义了四个参数的计算函数,其中位置参数γ通过加权平均值计算,形状参数δ基于局部均值和标准差的比值,尺度参数ξ结合峰度和绝对偏差,伸缩参数λ依据偏态系数。此外,还实现了Johnson-SU分布的概率密度函数(PDF),并使用负对数似然函数作为目标函数,采用L-BFGS-B算法进行参数优化。最后,通过弹性网络的贝叶斯优化展示了另一种参数优化方法。; 适合人群:具有Python编程基础,对统计学和机器学习有一定了解的研究人员或工程师。; 使用场景及目标:①需要对复杂数据分布进行建模和拟合的场景;②希望通过优化算法提升模型性能的研究项目;③学习如何实现和应用先进的统计分布及优化技术。; 阅读建议:由于涉及较多数学公式和编程实现,建议读者在阅读时结合相关数学知识,同时动手实践代码,以便更好地理解和掌握Johnson-SU分布及其优化方法。
TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
自动发布Java项目(Tomcat)Shell脚本
# 基于webpack和Vue的前端项目构建方案 ## 项目简介 本项目是基于webpack和Vue构建的前端项目方案,借助webpack强大的打包能力以及Vue的开发特性,可用于快速搭建现代化的前端应用。项目不仅完成了基本的webpack与Vue的集成配置,还在构建速度优化和代码规范性方面做了诸多配置。 ## 项目的主要特性和功能 1. 打包功能运用webpack进行模块打包,支持将scss转换为css,借助babel实现语法转换。 2. Vue开发支持集成Vue框架,能使用Vue单文件组件的开发模式。 3. 构建优化采用threadloader实现多进程打包,cacheloader缓存资源,极大提高构建速度开启热更新功能,开发更高效。 4. 错误处理与优化提供不同环境下的错误映射配置,便于定位错误利用webpackbundleanalyzer分析打包体积。
Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》PDF
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
# 基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统 ## 项目简介 本项目是一个基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统。系统通过Arduino Feather M0采集传感器数据,并通过WiFi将数据传输到Raspberry Pi。Raspberry Pi运行BalenaOS,集成了MySQL、PHP、NGINX、Apache和Grafana等工具,用于数据的存储、处理和可视化。项目适用于环境监测、物联网设备监控等场景。 ## 项目的主要特性和功能 1. 传感器数据采集使用Arduino Feather M0和AM2315传感器采集温度和湿度数据。 2. WiFi数据传输Arduino Feather M0通过WiFi将采集到的数据传输到Raspberry Pi。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Arduino的WiFi按钮项目 ## 一、项目简介 本项目是一个基于ESP8266芯片的Arduino项目,主要实现WiFi连接、电压检测、LED灯控制以及向服务器发送POST请求等功能。通过简单的按钮操作,可以实现与服务器通信并获取相关信息,同时能检测电池电压并提示用户。 ## 二、项目的主要特性和功能 1. WiFi连接项目能够自动连接到指定的WiFi网络。 2. 电压检测通过ADC(模数转换器)检测电池电压,并在电压低于阈值时发出警告。 3. LED灯控制通过控制LED灯的亮灭来提示用户不同的状态信息(如连接成功、电压低等)。 4. 服务器通信项目可以向指定的服务器发送POST请求并处理返回的HTTP响应。 ## 三、安装使用步骤 1. 环境准备确保已安装Arduino IDE和ESP8266插件。 2. 下载源码下载项目的源码文件并解压。 3. 打开项目在Arduino IDE中打开解压后的main.cpp文件。