我有这个存储过程:
CREATE OR REPLACE PROCEDURE SP_ObtenerSecuencialFactura(INOUT p_secuencial INT)
LANGUAGE PLPGSQL
AS
$$
BEGIN
SELECT MAX("CODIGOFACTURA") + 1 INTO p_secuencial FROM "FACTURA";
IF p_secuencial IS NULL THEN
p_secuencial := 1;
END IF;
END
$$
Run Code Online (Sandbox Code Playgroud)
和电话:
DECLARE secuencial INT;
CALL SP_ObtenerSecuencialFactura(secuencial);
RAISE NOTICE '%', secuencial;
Run Code Online (Sandbox Code Playgroud)
但是当我调用该存储过程时出现此错误:
错误:“INT”处或附近的语法错误
第 1 行:DECLARE secuencial INT;
怎么了?我正在寻找示例,但仅存在于函数中。
如何在 PostgreSQL 中的数组上添加外键约束?
角色查找表
CREATE TABLE party_role_cd
(
party_role_cd bigint NOT NULL,
code character varying(80) NOT NULL,
CONSTRAINT party_role_cd PRIMARY KEY (party_role_cd)
);
Run Code Online (Sandbox Code Playgroud)
参与方可以有零个或多个角色 [0-N 关系]
CREATE TABLE party
(
party_id biging NOT NULL,
party_role_cd bigint[] NOT NULL,
CONSTRAINT party_id PRIMARY KEY (party_id)
);
Run Code Online (Sandbox Code Playgroud)
如何在表中添加foreign key约束?party_role_cd arrayparty
在 PostgreSQL 中,如何有效地对一列进行全文搜索,对另一列进行排序?
假设我有一个tbl包含列a、b、c、 ... 和许多(> 一百万)行的表。我想对列进行全文搜索,a并按其他列对结果进行排序。
所以我va从 column创建一个 tsvector a,
ALTER TABLE tbl
ADD COLUMN va tsvector GENERATED ALWAYS AS (to_tsvector('english', a)) STORED;
Run Code Online (Sandbox Code Playgroud)
iva为其创建一个索引,
CREATE INDEX iva ON tbl USING GIN (va);
Run Code Online (Sandbox Code Playgroud)
ib和列的索引b,
CREATE INDEX ib ON tbl (b);
Run Code Online (Sandbox Code Playgroud)
然后我查询像
SELECT * FROM tbl WHERE va @@ to_tsquery('english', 'test') ORDER BY b LIMIT 100
Run Code Online (Sandbox Code Playgroud)
现在 Postgres 明显的执行策略是:
对于频繁出现的单词,使用 进行索引扫描ib,过滤va …
postgresql full-text-search query-optimization postgresql-13 postgresql-14
我们一直在尝试在其中一个数据库中创建许多角色和用户。有一次我遇到了这个问题,我发现很难重现。
它在数据库中是可重现的,但是当我创建一个新数据库并尝试相同的操作时,它不会发生:(
ALTER TABLE public.table_name OWNER TO role_name;
通常,在我们运行此查询之后。这table_name将由owned角色role_name/用户决定。
运行上述查询后,如果我们运行以下查询:
select grantee, table_catalog, privilege_type, table_schema, table_name
from information_schema.table_privileges
where table_name = 'table_name'
order by grantee, table_schema, table_name
Run Code Online (Sandbox Code Playgroud)
我们将得到以下结果:
role_name | database_name | INSERT | public | table_name
role_name | database_name | DELETE | public | table_name
role_name | database_name | SELECT | public | table_name
role_name | database_name | UPDATE | public | table_name
role_name | database_name | TRUNCATE | public | table_name
role_name …Run Code Online (Sandbox Code Playgroud) 我希望将 pgsql 13 数据库的位置从默认位置移动到另一个磁盘。
我最初点击了这个指南链接
但这是针对 v9.5,而不是 13。我的挑战是,通过运行以下命令找到的数据库位置也是存储配置文件的位置。
SHOW data_directory;
data_directory
------------------------
/var/lib/pgsql/13/data
(1 row)
SHOW config_file;
config_file
----------------------------------------
/var/lib/pgsql/13/data/postgresql.conf
(1 row)
Run Code Online (Sandbox Code Playgroud)
在 9.5 版本中,配置文件位于单独的区域,因此此时我陷入了指南的困境。
看来如果我想移动数据库位置,我还必须移动所有配置文件。
我尝试将整个数据文件夹移动到新位置并重新启动 postgres,但没有成功。
任何帮助,将不胜感激。
拥有一个运行 Amazon Linux AMI 2 的 AWS EC2 实例。使用以下命令安装了 PostgreSQL
sudo amazon-linux-extras install postgresql13
Run Code Online (Sandbox Code Playgroud)
现在,如何启动并配置它?
我可以看到
Package postgresql-13.3-2.amzn2.0.1.aarch64 already installed...
postgresql amazon-web-services amazon-linux amazon-linux-2 postgresql-13
拥有一个正在运行的 AWS EC2 实例Amazon Linux AMI 2。喜欢安装就可以PostgreSQL Server 13了。按照此处提到的说明进行操作 - https://www.postgresql.org/download/linux/redhat/
但是,执行时 -
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Run Code Online (Sandbox Code Playgroud)
出现以下错误 -
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Failed to set locale, defaulting to C
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
pgdg-redhat-repo-latest.noarch.rpm | 8.1 kB 00:00:00
Examining /var/tmp/yum-root-TO1dIc/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-24.noarch
Marking /var/tmp/yum-root-TO1dIc/pgdg-redhat-repo-latest.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package pgdg-redhat-repo.noarch 0:42.0-24 will be installed
--> Processing Dependency: /etc/redhat-release for package: pgdg-redhat-repo-42.0-24.noarch
amzn2-core | 3.7 kB 00:00:00 …Run Code Online (Sandbox Code Playgroud) postgresql amazon-web-services amazon-linux amazon-linux-2 postgresql-13
我在 postgresql13 中使用 npgsql,但是在尝试连接时出现以下错误:
目前仅支持认证明文密码和认证md5密码。收到 10
我的连接行是: NpgsqlConnection conn = new NpgsqlConnection("服务器= xxxx;端口= xxxx;用户ID = xxxx;密码= xxx;数据库=数据库;")
在 postgresql 9.6 中一切正常,但它迁移到版本 13 并产生了这个问题