小编Pri*_*mre的帖子

PostgreSQL通过SSH隧道

我想使用RazorSQL连接到我的远程服务器上运行的数据库.我使用以下命令在localhost上创建SSH隧道:

ssh -L 1111:remote.server.com:5432 myuser@remote.server.com
Run Code Online (Sandbox Code Playgroud)

我通过RazorSQL的GUI配置我的连接,指定localhost为主机和1111端口.当我单击"连接"时,会出现以下错误消息:

ERROR: An error occurred while trying to make a connection to
the database: 

JDBC URL: jdbc:postgresql://localhost:1111/myuser

FATAL:
no pg_hba.conf entry for host "aaa.bbb.ccc.ddd",
user "myuser", database "mydatabase", SSL off
Run Code Online (Sandbox Code Playgroud)

哪里aaa.bbb.ccc.ddd是远程服务器的IP地址.

更重要的是,我不允许更改pg_hba.conf文件的内容.这就是目前的样子:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local   all         all                               @authmethod@
# IPv4 local connections:
host    all         all         127.0.0.1/32          @authmethod@
# IPv6 local connections:
host    all         all …
Run Code Online (Sandbox Code Playgroud)

postgresql ssh tunnel razorsql

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

PostgreSQL - 从bash脚本查询为数据库用户'postgres'

我在其中有3列我的PostgreSQL数据库中的表- c_uid,c_defaultsc_settings.c_uid只是存储用户的名称,并且c_defaults是一段长文本,其中包含该用户的大量数据.

我必须从bash脚本执行一个语句,该脚本根据值选择c_defaults列的c_uid值,这需要由数据库用户'postgres'完成.

在CLI上,我可以执行以下操作:

[mymachine]# su postgres
bash-4.1$psql
postgres=#\c database_name
You are now connected to database "database_name" as user "postgres".
database_name=#SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser';
Run Code Online (Sandbox Code Playgroud)

但是,如何通过bash脚本实现此目的?

目的是从该列获取信息,编辑它并将其写回该列 - 所有这些都通过bash脚本完成.

sql postgresql bash

42
推荐指数
4
解决办法
15万
查看次数

如何中断ExecutorService的线程

使用ExecutorService返回的时Executors.newSingleThreadExecutor(),如何中断它?

java concurrency multithreading executorservice

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

根据PostgreSQL中的2个表计算两个count(*)查询结果之间的差异

我想计算在count(*)PostgreSQL数据库的2个独立表上执行的2 类SELECT查询结果之间的差异.

这就是我目前正在使用的(但是我应该能够将它全部包装到单个SELECT语句中):

SELECT "count"(*) AS val1 FROM tab1;
SELECT "count"(*) AS val2 FROM tab2;
SELECT val2-val1;
Run Code Online (Sandbox Code Playgroud)

提前致谢

sql postgresql

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

如何使用JPA和Spring Data执行存储过程?

我试图Terminal_GetTicket在我的数据库中调用存储过程,但不断收到以下异常:

PropertyReferenceException: No property getTicket found for type TicketInfo
Run Code Online (Sandbox Code Playgroud)

我用一个非常简单的测试实体交叉验证了我的配置,一切似乎都运行正常,但是对于实际情况,有些事情是错误的.

这是我的域实体(TicketInfo):

@Entity
@NamedStoredProcedureQuery(name = "TicketInfo.getTicket", procedureName = "Terminal_GetTicket", resultClasses = TicketInfo.class, parameters = { 
    @StoredProcedureParameter(mode = ParameterMode.IN, name = "sys_id_game", type = Integer.class)})
public class TicketInfo {

    @Id @GeneratedValue
    private Long id;
    private String idTicket;
    private Integer externalTicketCode;
    private Short sequenseAlert;
    private Integer dlTimeStamp;
Run Code Online (Sandbox Code Playgroud)

所有实例变量都正确定义了它们的getter和setter,并且存储过程总共有5个输出参数匹配的属性TicketInfo.

此外,这是我的存储库界面:

public interface TicketInfoRepository extends CrudRepository<TicketInfo, Long> {
    @Transactional(timeout = 5)
    @Procedure
    TicketInfo getTicket(Integer sys_id_game);
}
Run Code Online (Sandbox Code Playgroud)

另外,这是我的context.xml文件(对于Spring): …

java jpa spring-data spring-data-jpa

14
推荐指数
2
解决办法
3万
查看次数

PostgreSQL - 将每个表转储到不同的文件中

我需要从PostgreSQL数据库的多个表中提取SQL文件.这是我到目前为止所提出的:

pg_dump -t 'thr_*' -s dbName -U userName > /home/anik/psqlTest/db_dump.sql
Run Code Online (Sandbox Code Playgroud)

但是,如您所见,所有以前缀开头的表thr都将导出到单个统一文件(db_dump.sql)中.我总共有近90个表来提取SQL,所以必须将数据存储到单独的文件中.

我该怎么做?提前致谢.

sql database postgresql pg-dump postgresql-9.1

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

PostgreSQL - 舍入浮点数

我有一个关于PostgreSQL 9.2中浮点数的新手问题.

是否有直接舍入浮点数的函数,即不必先将数字转换为数字类型?

另外,我想知道是否存在以任意度量单位舍入的函数,例如最接近0.05?

首先将数字转换为十进制形式时,以下查询可以完美地运行:

SELECT round(1/3.::numeric,4);

 round  
--------
 0.3333
(1 row)
Time: 0.917 ms
Run Code Online (Sandbox Code Playgroud)

但是,我真正希望实现的是以下内容:

SELECT round(1/3.::float,4);
Run Code Online (Sandbox Code Playgroud)

目前给我以下错误:

ERROR:  function round(double precision, integer) does not exist at character 8
Time: 0.949 ms
Run Code Online (Sandbox Code Playgroud)

谢谢

postgresql

8
推荐指数
2
解决办法
3万
查看次数

PostgreSQL 中的地理定位查询

我们正在开发拼车服务,我们使用 PostgreSQL 作为我们的数据库管理系统来存储拼车详细信息。我们没有使用任何特殊的数据类型来存储我们的纬度和经度信息,但目前将它们保存为字符串对象。为了提高我们对地理定位数据的搜索查询的性能,我们可以使用 PostGIS 还是 PostgreSQL 是否有任何其他与位置相关的支持?在这种情况下有什么可以提高数据库性能的吗?(顺便说一句,我们正在使用 Django。)

我们的数据看起来是这样的: Ride1从开始pointA(lat,long)并且去pointB(lat,long)routePoints(lat,long)(lat,long)......一路走来。我们需要对这些数据进行复杂的查询,例如:

  1. pointA1从 A->B 的总距离的 5% 出发?和
  2. 路线点数组中是否有一个点与其他人的位置重合,用户可以捡到它们?

感谢您阅读本文。请帮助我为上述地理定位查询系统选择最佳数据库架构。

django postgresql postgis

6
推荐指数
1
解决办法
4165
查看次数

同一个表的同一列上的2个PostgreSQL索引 - 冗余?

我有一个带有2个索引的PostgreSQL表.其中一个索引是覆盖website_idtweet_id列,是一个独特的B树索引.第二个索引仅覆盖website_id列,并且是非唯一索引.

如果第一个索引存在,第二个索引是多余的吗?换句话说,拥有第二个指数是否没有优势?

sql database postgresql indexing

6
推荐指数
2
解决办法
1110
查看次数

Java 8中如何让异步任务具有较低的优先级?

我有一个处理主实体的服务,检索与主实体关联的第一个子实体,然后返回两者。它还启动了一组可完成的Future链,以出去并检索任何其他实体。目前,我只是采用一组预先构建的检索任务,将Future异步包装在它们周围,然后使用CachedThreadPool. 这很好,但是当超过 50 个用户访问服务器时,主要任务(检索主实体和第一个子实体)会因所有异步线程的运行而显着减慢。

我想知道是否有一种方法可以使异步调用以较低的优先级运行,以确保快速处理主要调用。

  public CompletableFuture buildFutureTasks(P primaryEntity, List<List<S>> entityGroups)
  {
    ExecutorService pool = Executors.newCachedThreadPool();
    CompletableFuture<Void> future = null;
    for (List<S> entityGroup : entityGroups)
    {
      if (future == null || future.isDone())
      {
        future = CompletableFuture.runAsync(() ->
            retrieveSubEntitiesForEntity(primaryEntity, entityGroup), pool);
      }
      else
      {
        future.thenRunAsync(() ->
            retrieveSubEntitiesForEntities(primaryEntity, entityGroup), pool);
      }
    }
    return future;
  }
Run Code Online (Sandbox Code Playgroud)

这是我在 50 多个用户的情况下运行的最快速度,但它仍然大大减慢了我添加的更多用户的速度。

java multithreading asynchronous java-8

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