小编sib*_*ert的帖子

从cte(postgresql)更新结果

如果有任何记录是较早的日期,我想更新工作日期.尝试使用CTE来实现这一目标:

CREATE TABLE job
    (jobid int4, jobdate date);

INSERT INTO job
    (jobid, jobdate)
VALUES
    (1, '2016-02-01'),
    (2, '2016-02-01'),
    (3, '2016-02-01'),
    (4, '2016-02-01')
;

CREATE TABLE rec
    (recid int4, recjob int4, recdate date);

INSERT INTO rec
    (recid, recjob, recdate)
VALUES
    (1,1,'2016-02-01'),
    (2,2,'2016-01-01'),
    (3,3,'2016-02-01'),
    (4,4,'2016-02-01')
;
Run Code Online (Sandbox Code Playgroud)

工作号码2的记录日期早于工作日期.所以我想用记录日期更新这份工作.

WITH      cte AS
          (SELECT jobid,least(min(recdate),jobdate)
FROM      job
LEFT JOIN rec ON recjob=jobid
GROUP BY  jobid,jobdate
HAVING    least(min(recdate),jobdate)<jobdate)
Run Code Online (Sandbox Code Playgroud)

选择cte显示正确的作业2应该更新

SELECT * FROM cte
Run Code Online (Sandbox Code Playgroud)

但是更新会产生错误:缺少表"cte"的FROM子句条目

UPDATE job 
SET    jobdate=cte.date 
WHERE  jobid IN (SELECT jobid FROM cte)
Run Code Online (Sandbox Code Playgroud)

SQLFiddle: …

sql postgresql postgresql-9.1

13
推荐指数
2
解决办法
1万
查看次数

Postgres中的最大连接数在哪里定义?

我想限制多租户环境中每个数据库的用户数量。但最大连接数分为三个级别,我应该感谢任何建议。

1 级整个服务器

通过编辑 Postgresql 的配置,我可以设置服务器上所有数据库的最大连接

postgresql.conf = max_connections = 100
Run Code Online (Sandbox Code Playgroud)

每个数据库级别 2

我可以选择并设置每个数据库的数据库连接限制:

SELECT datconnlimit FROM pg_database
Run Code Online (Sandbox Code Playgroud)

每个角色 3 级

我可以选择并设置每个“用户”的角色连接限制:

SELECT rolconnlimit FROM pg_roles
Run Code Online (Sandbox Code Playgroud)

我的问题是

  1. 如果postgresql.conf中的max_connections是100,那么无论数据库和角色设置如何,它都是所有数据库的最大连接数吗?例如,100 个数据库每个同时只能有 1 个连接?

  2. 限制最大连接数的最佳位置在哪里。在数据库级别还是在角色级别?

  3. 还有什么需要考虑的吗?

TIA 寻求任何建议或线索!

postgresql data-connections

10
推荐指数
1
解决办法
2万
查看次数

Django和Node - 它是如何工作的?

为了使具有RESTful功能的Web应用程序能够阅读并观看大量文章和视频,我仍然无法全面了解其工作原理.我应该选择哪个.其他每个答案都没有帮助"它取决于".我把它归结为Django和Node之间的第一选择.但是我找不到这些部分如何协同工作以及需要哪些模块的整个"图片".因此,我试图将所有内容都放在一个粗略的插图中.请注意,我是一个完整的新手.

我用会计模块开发了一个ERP应用程序.基本上它主要是关于CRUD,除了查看图表,打印和存储文档.所以这就是"它取决于"

我唯一能做出决定的就是使用nginx,Postgresql和Debian 8作为工具/操作系统.这些是固定的星星.

我的问题并不是常见的Django vs Node.js,它不仅仅是我想要的意见:

  1. 下图是否正确?任何意见?
  2. 是否还需要其他组件?开始?

Node.js和Django结构

python django node.js express postgresql-9.1

9
推荐指数
1
解决办法
2966
查看次数

撤消对角色的postgres数据库的访问权限

我为一个应该只执行一些存储函数的用户创建了一个单独的角色"newrole"和新模式"newschema".我已设法撤销对当前数据库的模式"public"的访问权限.

登录为"newrole"我仍然可以访问postgres数据库,如下所示:

SELECT * FROM pg_user
Run Code Online (Sandbox Code Playgroud)

我想撤销对postgres数据库的所有访问权限并尝试执行以下操作:

REVOKE ALL ON DATABASE postgres FROM newrole
Run Code Online (Sandbox Code Playgroud)

当以newrole身份登录时,我仍然可以阅读postgres数据库.

如何撤销对postgres管理数据库的任何访问?

我已经搜索了很长时间但没有找到任何有关访问postgres管理数据库的信息.

TIA,

postgresql postgresql-9.4

5
推荐指数
1
解决办法
1万
查看次数

哪个最正确 - 合并(sum(value))OR sum(coalesce(value))?

我已经看到了这两个,但我想知道是否有一个"最佳实践"或优势来合并之前或之后的总和:

coalesce(sum(value),0)  OR  sum(coalesce(value),0)
Run Code Online (Sandbox Code Playgroud)

只是好奇...

sql

5
推荐指数
2
解决办法
9151
查看次数

golang中的长查询

这是一个基于绝对不知道golang的问题,目的是找出是否有办法使长查询可读.

我的尝试是将sql文本放在变量中,然后执行变量.

伪代码(没有实际代码):

var query = 
SELECT * FROM foo
UNION ALL
SELECT * FROM bar
UNION ALL
SELECT * FROM other
...

db.prepare (var query)
db.query (var query)
Run Code Online (Sandbox Code Playgroud)

这可能是一个愚蠢的问题,但我已经搜索过,并且没有发现如何使长查询更具"可读性".大多数示例都基于"hello world"级别.在现实世界中,查询可能会很长.

TIA,

go

4
推荐指数
1
解决办法
4483
查看次数

Angular 6的angular-material-multilevel菜单?

我试图实现多层次的sidenav,发现这符合我的要求:

角材料多级菜单

演示 -注意手风琴类型

不幸的是,这是为AngularJS(1.0?)创建的,在Angular 6中似乎不起作用。

我的问题是:

  1. Angular 6是否还有其他任何多层sidenav组件?注意在Google上找到任何类似的作品。
  2. 是否可以将此Angular 1.0菜单“升级”到Angular 6?怎么样?
  3. 是否有任何简单的说明或课程来构建您自己的多层次侧面导航?有很多关于一级的说明,但是我发现没有多层的说明。

sidenav angular6

4
推荐指数
1
解决办法
2万
查看次数

如何将 map[string]interface{} 打印为 json?

我在使用时遇到格式问题 sqlx

rows, err = db.Queryx(query)
for rows.Next() {
    results := make(map[string]interface{})
    err = rows.MapScan(results)
    fmt.Fprintf(w,"%#v \n", results)
}
Run Code Online (Sandbox Code Playgroud)

使用%#v时的输出

fmt.Fprintf(w,"%#v \n", results)
Run Code Online (Sandbox Code Playgroud)

地图[字符串]接口 {}{"USER_ID":"JD", "USER_NAME":"John Doe"}

地图[字符串]接口 {}{"USER_ID":"JAD", "USER_NAME":"Jane Doe"}

map[string]interface {}{"USER_ID":"DD", "USER_NAME":"Donald Duck"}

仅使用%v

fmt.Fprintf(w,"%v \n", results)
Run Code Online (Sandbox Code Playgroud)

地图[USER_ID:JD USER_NAME:John Doe]

地图[USER_ID:JAD USER_NAME:Jane Doe]

地图[USER_ID:DD USER_NAME:唐老鸭]

所需的输出是摆脱map[string]interface {}

{"USER_ID":"JD", "USER_NAME":"John Doe"}

{"USER_ID":"JAD", "USER_NAME":"Jane Doe"}

{"USER_ID":"DD", "USER_NAME":"Donald Duck"}

这可能吗?

使用 JSON 编辑

根据@Timothy Jones 的说法,我已经更新了主要代码并且它按预期工作。除了结果打印到终端而不是浏览器。

rows, err = db.Queryx(query)
  for rows.Next() {
    results := make(map[string]interface{})
    err …
Run Code Online (Sandbox Code Playgroud)

go

2
推荐指数
1
解决办法
7070
查看次数

获取两行之间不同的列

我有一个company60 列的表。目标是创建一个工具来查找、比较和消除此表中的重复项。

示例:我找到 2 家可能相同的公司,但我需要知道这两行之间哪些值(列)不同才能继续。

我认为可以逐列比较 x 60,但我寻找更简单、更通用的解决方案。

就像是:

SELECT * FROM company where co_id=22
SHOW DIFFERENCE
SELECT * FROM company where co_id=33
Run Code Online (Sandbox Code Playgroud)

结果应该是不同的列名。

postgresql duplicate-removal postgresql-9.1

0
推荐指数
1
解决办法
1796
查看次数