永发信息网

在线等: postgresql 用一句或几句sql实现 有则更新,无则插入

答案:5  悬赏:60  手机版
解决时间 2021-02-12 21:17
在线等: postgresql 用一句或几句sql实现 有则更新,无则插入
最佳答案
这个要使用postgresql定时任务,类似oracle中的job,SQL Server中的代理(agent)。
需要安装pgagent插件,然后建立job就定时执行了。具体要参考pgagent插件的使用。
全部回答
postgresql 有个 CONFLICT 可以搞定 INSERT INTO 表名 (user_id, user_name) VALUES('001', 'sys管理员')  ON CONFLICT (user_id) DO UPDATE SET user_name = '游客'; user_id 是 唯一的 网页链接
postgresql的二进制数据类型为bytea,可最多保存2g的数据。在ado、odbc等接口,可通过带参数化的插入sql语句上传二进制。 然而在某些接口、sql语句无法进行参数绑定,或者某些语言没有二进制的类型,或者接口的不兼容等原因,常无法上传二进制数据。 碰到这种情况下,必须在客户端将二进制转化为一定规则的字符序列,然后插入语句时,来个显示转换cast('字符序列' as bytea). 二进制转化为字符序列的规则: 分析每个字节,当其ascii值在0到31,127到255,或为39、92,请将这字节转化为3位的八进制字符串,前面加上2个反斜杠,如chr(39)表示为//047. 其他ascii值为可显示字符,不变,当然你也可全部转化为八进制,但这样整个字符串太长,浪费空间。 如二进制序列 chr(0)+'a'+'b'+chr(233)+chr(25)+'c'转化为字符序列为: //000ab//351//031c 上传的时候再来个显示转换,如 insert into table1 (aa) values (cast('//000ab//351//031c' as bytea)) 如果二进制数据太大,可分次上传,用||连接符连接起来,如: insert into table1 (id,aa) values (1,cast('序列1' as bytea)) update table1 set aa=aa||cast('序列2' as bytea) where id=1
INSERT INTO tags (name, slug)SELECt 'Wow', 'wow'WHERe NOT EXISTS (SELECT id FROM tags WHERe slug = 'wow')RETURNING id;
insert into select -- where not exists (select -- from -- where -- )
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
高中女生身高一米六二体重一百一十斤这种正常
墨曦教育地址在什么地方,想过去办事
成都的公交卡可以刷地铁么?学生卡呢?
金顺汽车租赁地址有知道的么?有点事想过去
美国的城市化进程是如何完成的?比如像纽约这
大家艺校(恒泰校区)地址在什么地方,想过去办
赫尔岑说:“生活里最重要的是对人有礼貌,它
青笙离人是什么意思
乐悠悠教育地址在什么地方,想过去办事
金凰酒店地址在哪,我要去那里办事
黄江龙书法地址在哪,我要去那里办事
为什么上海文玩人气不行了
云南榜贤贸易有限公司怎么去啊,有知道地址的
i wish i can fly 挥着翅膀的女孩唱的是这句
求:青春校园舞台剧 适合高中的
推荐资讯
川扬食府我想知道这个在什么地方
人体膝反射、角膜反射、瞳孔反射、肱三头肌反
哪里的大米最好吃
真视觉艺术背景墙我想知道这个在什么地方
张家口市再生资源第二分拣中心地址在哪,我要
昕亭舞蹈教育艺术培训地址在哪,我要去那里办
在北京有违章罚款,除夕前一天下午去交罚款上
驾照实习期c照会被延长实习期吗
羿辰什么意思
画一个面积是八平方厘米的梯形怎么画
晋江磁灶中学怎么样。我 刚刚被录取,想了解
曲阜市董庄乡歇马亭中学地址在哪,我要去那里
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?