我有下面的存储过程,它返回0个结果,但是如果查询本身运行,它会产生很多结果。我错过了什么
CREATE OR REPLACE FUNCTION countStatistics(baselineDate Date) RETURNS int AS $$
DECLARE
qty int;
BEGIN
SELECT COUNT(*) INTO qty FROM statistics WHERE time_stamp = baselineDate;
RETURN qty;
END;
我有一个Postgres数据库,其中的表分布在多个模式中。对于那些没有指定模式名称的表,我有大量预先存在的模型(最初的设计是将所有表都放在单个模式下)
有没有一种方法可以定义Zend_Db连接的自定义搜索路径,其中PDO_PGSQL是驱动程序
谢谢 使用
ALTER ROLE foo SET search_path = bar, baz;
其中foo是您使用的数据库用户名。(如有必要,对其他用户名重复此操作。)
我正在使用Sphinx索引Postgres DB上的一些表。Sphinx似乎有一个可以执行的索引前查询:
这可以用于通过DB链接将数据从另一个DB批量复制插入到我正在索引的DB中吗
INSERT INTO table1 SELECT * FROM dblink('dbname=db2', 'SELECT * FROM table2 WHERE id = 10') AS t1(id integer, name varchar, address varchar);
我看到的大多数示例都用于设置会
PostgreSQL 8.4无法在Ubuntu 10.10上启动
sudo /etc/init.d/postgresql start
* Starting PostgreSQL 8.4 database server
在安装我的应用程序的过程中,我想创建一个PostgreSQL数据库以及一些表和函数
为此,我使用PostgreSQL附带的PSQL.EXE。我有两个脚本。第一个创建数据库和相应的用户,该用户有权在该数据库上执行脚本。我想执行第二个脚本,因为这是刚刚创建的用户。不幸的是,我找不到一种方法将该用户的密码作为命令行参数传递。省略密码会导致执行停止,并提示用户输入密码,这是我希望避免的,因为这是在安装我的应用程序时执行的
是否有任何方法可以将密码作为参数传递,或者是否有任何其他命令行工具可以使用
进一步
我有两张桌子:
TableY:
id, name, description
TableX:
id, name, y_id
我在TableX中添加了一个外键(y\u id引用了DELETE CASCADE上的tableY id)。
当我从TableX中删除时,TableYid保留下来(理论上应该删除它)。
我想我误解了DELETE CASCADE选项的工作原理。谁知道我做错了什么
我也看到了这一点,但对我来说没有多大意义。我想你误解了。尝试从TableY中删除行,将级联删除Ta
在PostgreSQL中,如何为列生成随机唯一整数,
返回表列中不存在的内容?请参阅函数,该函数基于该技术实现排列。结合postgres序列,这保证了结果的唯一性,以及人眼的随机性
例如:
CREATE OR REPLACE FUNCTION pseudo_encrypt(VALUE int) returns int AS $$
DECLARE
l1 int;
l2 int;
r1 int;
r2 int;
i int:=0;
BEGIN
l1:= (VALUE >> 16) &a
我正在使用mwdumper和MySql导入MediaWiki数据库。现在我需要做同样的事情,但是使用Postgresql
基本上我在这个链接中得到了一个存档:
我使用mwdumper程序获取信息并将其放入数据库
这是数据库脚本:
我通过这个sql创建了数据库,现在我需要使用mwdumper将数据放入数据库中。
我看到了很多关于这个的链接,但只在MySql中看到
有人知道如何使用Postgres和命令行进行导入吗
Mwdumper:www.mediawiki.org/wiki/Manual:
嗨,有人能帮我解决当我试着做这件事时遇到的错误吗
rake db:migrate
使用ubuntu 14
这就是接下来的错误
rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
/hom
如何在PostgreSQL中专门存储密码?我知道可以与PostgreSQL一起使用的库,如下所述:
INSERT INTO users (name, password) VALUES ('jdoe', crypt('password', gen_salt('md5')));
但是,密码仍有可能以明文形式存储在PostgreSQL server日志中。另一个复杂的因素是我不能直接控制日志配置
是否有任何方法可以完全隐藏服务器列中的值,甚至从日志中隐藏?此时:加密客户端是否使用内置的Postgre
我们有一个托管的PostgreSQL,无法访问系统或*.conf文件
我有管理员权限,可以使用Oracle SQL developer连接到它。
我可以运行任何命令来增加最大连接数吗。所有其他参数似乎都正常,共享内存和缓冲区可以容纳更多连接,因此没有问题。显然,我们使用的托管Postgres不提供此选项。(compose.io)
因此,解决方法是使用pgbouncer更好地管理您的连接。更改max\u connection参数需要Postgres重新启动
命令
检查max_连接以记住当前值
SH
我使用PostgreSQL copy命令生成csv文件
COPY (select * from table) from '/tmp/123456.csv' with csv header encoding 'UTF8';
此命令正常
但我想用ANSI编码制作文件,因为我想在MicrosoftExcel中打开它
COPY (select * from table) from '/tmp/123456.csv' with csv header encoding 'ANSI';
此命令无法生成cs
我有一个返回整行的查询,我需要将这个结果透视到一个新表中
SELECT id_no, stud_name, group_no, class_1, class_2, class_3, class_4 FROM tbl_stud_class
这将返回以下内容:
| id_no | stud_name | group_no | class_1 | class_2 | class_3 | class 4 |
| 1 | John Doe | A11 | 84 | 60
我正在编写一个Node.js程序,该程序将下载文本数组,并将其保存到带有text[]列的PostgreSQL表中。当我接收到数组时,我用
/**
* Convert an array of values into a PostgreSQL array string.
* @param {Array} array JavaScript array
* @return {String} PostgreSQL array string
*
我在获取查询时遇到问题,在该查询中,我有一个范围内的检查用户分数以显示等级,如果用户分数在75到100之间,则为a。如果用户分数在60到75之间,则为B和。。等等
我得到了这个值
CASE users.points_earned
WHEN 75-100 THEN
'A+'
WHEN 60-75 THEN
'A'
WHEN 40-60 THEN
'B+'
WHEN 1--40 THEN
'B'
ELSE
'Absent'
end as ran
我将本机lportalDB从高超音速转换为PostgreSQL。使用我的PostgreSQL配置添加了portal-ext.properties文件,并将PostgreSQL-42.1.1添加到D:\files\liferay-ce-portal-7.0-ga3\tomcat-8.0.32\lib\ext
# PostgreSQL
#
jdbc.default.driverClassName=org.postgresql.Driver
jdbc.default.url=jdbc:postgres
我有两张桌子,有两个柱状图:
Tab1.Number1 (BigInt)
100000
100001
tab2.Number2 (character varying)
10000_300
10001_301
90009_222
我需要进行一次选择,以显示具有相同值的行(不带“25;”)
我试图用
to_编号(tab2.Number2,99999)
但它不起作用:
to_number(character varying, integer) does not exist.
数据库是postgr
我已经创建了一个Postgres用户user1,并将所有权限授予了my_db,当我尝试从数据库中选择一个表时,我收到一个权限被拒绝的错误
创建用户1
>>zya$ psql -d postgres
psql (9.6.3)
Type "help" for help.
postgres=# CREATE USER user1 WITH PASSWORD 'password1';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABA
我无法使用Docker compose为Postgres设置密码。Postgres加载时没有密码,默认用户名为“Postgres”,下面的环境变量中似乎没有一个被应用。下面是我的docker-compose.yml文件的db服务:(版本3)
注意:我也尝试过使用“-POSTGRES\u USER=”,但没有成功
此外,我还删除了所有旧容器/卷
有什么想法吗?您的配置对我来说很好。我怀疑您没有使用完整的正确凭据集,包括用户名、密码和数据库名。如果我以您的示例docker compose.yaml为
我试图从postgresEXPLAIN输出中理解一些道理。我想了解在不同的场景中,在何处放置索引
一个例子是:
EXPLAIN for: SELECT "users".* FROM "users" INNER JOIN "user_sessions" ON "user_sessions"."user_id" = "users"."id" WHERE "user_sessions"."token" = $1 AND (user_sessions.expires_at > '2017-09-2
查看Postgresql中的条件表达式。更准确地说,例如
我似乎不知道现在如何访问amod下的结果(一、二和其他)。在四处寻找之后,我还没有找到解决它的方法。有关于如何做的建议吗
编辑:我要寻找的是能够从case表达式中选择amod并将其作为表格输出。您希望对该“结果”做什么?与我可以从测试中选择amod的方式相同,我希望从case表达式的结果中选择amod。感谢您的复制。这就解决了问题
SELECT * FROM test;
a
---
1
2
3
SELECT a,
PostgreSQL 9.5
一个非常小的更新SQL会像挂起一样长时间使用非常高的CPU。
我的Windows控制台应用程序使用一个简单的UPDATE语句更新最新时间,如下所示
UPDATE META_TABLE SET latest_time = current_timestamp WHERE host = 'MY_HOST'
只有两个控制台应用程序在SQL上面发布
META_表上没有索引
只有一排
当它挂起时,没有锁信息
没有挂钩的桌子
pg_stat_活动中的空闲状态
更新后提交
在
我有一个play scala应用程序,它使用光滑的hikaricp。我知道有办法设置连接超时,但我想设置一个查询超时。我有一些缓慢的查询,如果它们需要3秒钟以上,我想用超时设置来停止它们。我进行了搜索,bonecp提供了一个名为“queryExecuteTimeLimit”的参数,但我找不到hikaricp的设置。您知道如何设置查询超时吗?您是否尝试过使用Slick来设置查询超时?比如说,
myTable.result.withStatementParameters(statementInit
是否有任何选项仅使用标准查询从PostgreSQL buy中提取模式结构(DDL)
我目前正在使用pg_dump,但我想开发一个比较两个模式的简单应用程序,而不需要在本地安装任何东西,这并不容易。您可以查看pg_dump的源代码,了解它是如何实现的。它主要对目录使用标准查询,但使用的目录太多了
服务器上有一些功能可以帮助您解决问题,您可以使用以下功能查看一些功能:
\df *def
如果您愿意走捷径,比如只查看表、索引(?)和视图,而不是查看所有对象,则可以使操作简单得多。并且只支持一个Pos
从终点站,我
sudo su postgres
psql
\l:
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+---
我有一个类似这样的查询(实际的查询和表更复杂):
这给了我一个按特定顺序排列的类别名称列表(数组传递的uuid顺序)。例如:
789 CDX "Cat D"
123 KDJ "Cat A"
456 PLM "Cat B"
123 OLA "Cat F"
456 OWK "Cat X"
123 CAT "Cat Z"
我想做的是在该查询中添加一个独特的ON'item.other_uid'。因此,得出的清单将是:
789 CDX "Cat D"
123 KDJ "Cat A"
456 CAT "C
我想问一个关于postgresql-12流式复制的问题。我只想知道通过复制发送的文件/数据/数据包的大小,标准配置为每段16MB大小。它将在每笔交易中发送16MB或更少的数据?除了tcpdump或wireshark之外,任何其他工具都可以找到它。谢谢。每当WAL记录写入WAL缓冲区共享内存区域时,它将立即流式传输到待机区。WAL记录的大小是可变的。即使在交易结束之前,WAL也可以流式传输到待机状态。你说得对。我做了iftop,可以看到网络使用情况。非常感谢。
如标题所述,问题在于使用\set设置的psql变量对我有效,除非在\copy功能中使用psql客户端提供的
在\copy中引用psql变量是否需要一些特殊语法?还是我运气不好?如果是这样的话,这有没有记录在案
我在StackOverflow中找不到这个问题,也没有任何文档记录。我看了大约20个帖子,但什么也没找到。我还检查了(CLI的版本)并没有发现任何关于这方面的警告-我在页面中搜索了“variable”,但没有找到任何与此相关的内容。我还搜索了“扩展”和“扩展”,但什么也没找到。所以现在我在
我很难回答这个问题。
我的表格和数据:
CREATE SEQUENCE a_files_id_seq INCREMENT 1 MINVALUE 1 MAXVALUE 2147483647 START 1 CACHE 1;
CREATE TABLE "public"."a_files" (
"id" integer DEFAULT nextval('a_files_id_seq') NOT NULL,
"fil
我有一个循环,它抛出一个错误:
SQL错误[42601]:错误:语法错误位于或接近“.”位置:435
我想我可以通过说s_row.schema来引用记录行内容,但我在这里遗漏了一些东西。请尝试使用动态SQL
...
EXECUTE format('REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA %I FROM partner_reporting_user3_to_delete;', s_row.schema);
...
...
EXECUTE for
我在生产中提供docker服务(postgresql、django、nodejs等)。我希望将该数据库中的一个表复制到新的docker容器,而不会丢失其他表,并且当有人向要复制的表插入数据时,我希望数据也在复制表中。
所以我想做的是编写bash脚本,它将自动完成这些任务
PS:生产docker容器已存在
我找了很多,找不到合适的方法。如果你知道怎么做,请告诉我怎么做
如果有什么不清楚的地方,请提出来,我会尽量给出细节
我有一张表格“需求详情”
在更新或删除时,我想将每行的值存储在另一个表“demand\u details\u log”中
我的职能如下
CREATE OR REPLACE FUNCTION water_blogb() RETURNS trigger AS
$BODY$
BEGIN
IF (TG_OP='UPDATE') THEN
INSERT INTO demand_details_log VALUES ('U',now(),OLD.*);
RETU
我将postgres语句\u timeout设置为一个较低的值,以避免长时间查询,方法是:
ALTER DATABASE web SET statement_timeout = '28s';
显然,有些长语句确实超时,有些则不超时,只是停留不动。
什么会导致这种不同的行为?
超时是否取决于查询的类型?在交易阶段?还有什么吗?你能告诉我们什么是超时,什么不是超时吗?
我已将intarray列添加到表中,并成功地将数据添加到该列中
CREATE TABLE my_table
(
...
tag_ids integer[],
)
当我尝试这样的查询时:
SELECT id, tag_ids from my_table where tag_ids @@ ARRAY[1,2]
CREATE INDEX my_index ON my_table USING GIST (tag_ids gist__int_ops);
我得到这个错误:
ERROR: op
我对使用错误查询计划的查询有问题。由于非最佳查询计划,查询几乎需要20秒
该问题仅在少数所有者ID中出现。所有者ID的分布不统一。示例中的所有者id有7948条路由。路线总数为2903096条
数据库托管在服务器上的Amazon RDS上,该服务器具有34.2 GiB内存、4vCPU和配置的IOPS(实例类型db.m2.2xlarge)。Postgres的版本是9.3.5
EXPLAIN ANALYZE SELECT
route.id, route_meta.name
FROM
我正在尝试使用Vagrant在本地模拟我们的生产设置。在生产中,我们为postgresql数据库使用docker容器,运行在centos6.5/redhat上(不是选择)
因此,在本地,我安装了Vagrant,创建了一台机器,安装了postgresql docker容器并在该机器上运行,通过从VM连接来确保其运行。但是,我不知道如何从主机(或其他VM)连接到postgresql
这是我的流浪汉档案:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure
我正在构建一个小应用程序,在我的数据库中包含世界语单词,所以我有像ĉapelojn和brakhorloĝo这样的单词,带有“特殊”字符
使用PostgreSQL 9.4.4,我有一个具有以下模式的words表:
lingvoj_dev=# \d words
Table "public.words"
Column | Type |
我正在尝试使用pgloader将数据库从sqlite迁移到postgresql。我的sqlite数据库名为app.db。因此,运行以下命令
createdb new_pg_appdb
pgloader ./app.db postgresql:///new_pg_appdb
pgloader命令似乎从sqlite数据库导入了一些行,因为最终输出如下所示
table name read imported errors t
我正在开发一个应用程序,它使用东部时间,数据库设置为太平洋时间。这已经引起了一些问题,但我们被告知,这不可能是任何其他方式,所以我们只需要解决它
不管怎么说,我有一件麻烦的事就是今天的约会。由于数据库位于太平洋地区,如果我在凌晨1点使用current_date询问今天的日期,它会给出昨天的日期。我尝试过设置时区和加减间隔,但它似乎从来没有像我期望的那样工作,我宁愿不在凌晨1点做大量的测试来让它工作
在PostgreSQL中,有没有一种简单的方法可以返回给定时区中今天的日期 选择时区“UTC”的当
我目前正在使用一个现有的数据库,它有一个名为geometry的自定义数据类型(使用postgis扩展)。当我从数据库中的该列提取数据时,它给我的只是一个50个字符的字符串,但我不知道该字符串是如何创建的,因此我无法确定实际数据是什么
有没有办法查看postgres中的自定义数据类型定义?
我尝试了psql\dT和psql\dT+,但没有看到定义
不幸的是,我没有pgadmin。
谢谢 是否要查看CREATE TYPE语句?是的,类似这样的语句就太好了!
我的pg_hba.conf文件中有以下几行:
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all localhost trust
我重新开始了博士后课程。当我在命令行连接时,一切都按预期工作:
$ psql -U me -W
P
我想将csv文件中的数据插入到postgreSQL表中。我已经编写了从csv文件中获取数据的代码,如下所示
myData = spark.read.format("csv").option("header","true").load("D:/sample.csv")
DataFrame[id: int, firstname: string, lastname: string, email: string, password: string]
我在“myData”变量中获得了文件内容
url
假设我有下表
CREATE TABLE tbl
(
id uuid NOT NULL DEFAULT gen_random_uuid(),
col_a uuid NOT NULL,
col_b character varying NOT NULL,
PRIMARY KEY (id)
);
我希望它在(colu_a,colu_b)上是唯一的,所以我还将创建以下索引
CREATE UNIQUE INDEX tbl_unique_idx ON tbl USING btree (col
我正在尝试在Heroku上部署我的应用程序,但在启动数据库之前,我在本地尝试启动服务器时一直遇到相同的错误:
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 5432?
通常,我只需键入sudo服务postgres
我正在为消息传递应用程序设置数据库架构。我有一个messages表,其中存储了主题、正文、创建者(发送消息的人的id)、状态(已发送、草稿、未读)消息和其他信息,然后我还有一个sent表来跟踪messageid(来自messages表的消息id)和senderid(来自user表的发送者id)还有一个收件箱表,用于跟踪messageid和receiverid(用户表中接收方的id)。我希望实现以下目标:
每次我插入messages表(发布消息)时,我都会以编程方式将发送方的状态设置为“已发送”
我正在尝试使用postgresql provider在AWS中创建的postgres RDS中创建数据库。我创建的地形脚本如下所示:
resource "aws_db_instance" "test_rds" {
allocated_storage = "" # gigabytes
backup_retention_period = 7 # in days
engine = ""
engine_version
我有这样一个数据集:
story_name | users | age | reading_counts
-------------------+--------+-----+----------------
Humpty Dumpty | Elaine | 5 | 10
Wheels on the Bus | Simon | 3 | 15
Dr.Seuss | Simon | 3
我有存储文件信息的表。文件内容存储在列中(在PostgreSQL中,列数据类型为bytea)。现在我想根据bytea列数据获取文件内容大小
在SQL Server中,我可以使用以下查询获取:
select convert(nvarchar(50),DATALENGTH(FileDataInVarbinary)/ 1048576.0 ) +' MB' as FileSize from Table_FileInfo
您能告诉我,我们如何用postgreSQL编写上述sql查询。您可以使用该函数获取
我有下表:
id | fruit | parent |
----------------------------
id_1 | apple | |
id_2 | | id_3 |
id_3 | pineapple | |
id_4 | plum | id_5 |
id_5 | plum | |
使用子查询/横向联接是否可以获得以下输出:
id_1 apple
id_2 pi
如何在postgresql中设置默认时区
我尝试更新/etc/postgresql/13/main/目录中的postgresql.conf文件,然后重新启动sudo服务postgresql
但db中的时区显示“亚洲/加尔各答”
我希望是“UTC”
谁能告诉我这里有什么东西不见了吗
感谢您的帮助
谢谢您的会话时区是什么?@a_horse_和a_no_名称会话时区是'Asia/Kolkata',然后您需要在客户端中使用set timezone='UTC'@a_horse和a_no_名称我的节点应用程