小编Pet*_*ter的帖子

PostgreSQL - 尽管运行CREATE LANGUAGE,语言pgplsql仍然不存在

我只是尝试创建我的第一个plpgsql函数.执行脚本时,我明白了

错误:语言"'plpgsql'"不存在

然后我运行命令CREATE LANGUAGE plpgsql; 这显示以下错误:

错误:语言"plpgsql"已经存在

命令正在同一个数据库上运行.

问候

彼得

postgresql plpgsql

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

q-gram近似匹配优化

我有一个包含300万人记录的表,我希望使用q-gram(例如姓氏)进行模糊匹配.我已经创建了一个2-gram链接表,但是在这个数据卷上搜索性能不是很好(大约5分钟).

我基本上有两个问题:(1)你能否提出任何提高性能的方法来避免表格扫描(即必须计算搜索字符串和300万个姓氏之间的常见q-gram)(2)q-gram,如果A类似于B和C类似于B,它是否意味着C类似于A?

亲切的问候

彼得

sql sql-server fuzzy-search fuzzy-comparison

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

通过psql运行SQL脚本会产生PgAdmin中不会出现的语法错误

我有以下脚本来创建一个表:

-- Create State table.
DROP TABLE IF EXISTS "State" CASCADE;
CREATE TABLE "State" (
 StateID SERIAL PRIMARY KEY NOT NULL,
 StateName VARCHAR(50)
);
Run Code Online (Sandbox Code Playgroud)

它在PgAdmin的查询工具中运行良好.但是当我尝试使用psql从命令行运行它时:

psql -U postgres -d dbname -f 00101-CreateStateTable.sql
Run Code Online (Sandbox Code Playgroud)

我收到语法错误,如下所示.

2: ERROR:  syntax error at or near ""
LINE 1: 
        ^
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE will create implicit sequence "State_stateid_seq" for serial column "State.stateid"
psql:00101-CreateStateTable.sql:6: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "State_pkey" for table "State"
CREATE TABLE
Run Code Online (Sandbox Code Playgroud)

为什么我使用psql而不是pgAdmin会出现语法错误?

postgresql byte-order-mark syntax-error

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

PHP $ _SERVER ['REMOTE_HOST']返回:: 1

可能重复:
应该是$ ip = $ _ SERVER ['REMOTE_ADDR']; 在mamp localhost上返回:: 1?

我想用PHP获取网站访问者的IP地址.我期待$ _SERVER ['REMOTE_HOST']返回类似127.0.0.1的东西,但它返回:: 1.

php ip-address

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

Postgres:在 pgsql 函数中使用函数变量名称

我已经编写了一个 pgsql 函数,如下所示。如何去掉 $1、$2 等并用真实的参数名称替换它们以使函数代码更具可读性?

问候

彼得

CREATE OR REPLACE FUNCTION InsertUser (
    UserID UUID,
    FirstName CHAR(10),
    Surname VARCHAR(75),
    Email VARCHAR(75)
)
RETURNS void
AS
$$
INSERT INTO "User" (userid,firstname,surname,email)
VALUES ($1,$2,$3,$4)
$$
LANGUAGE SQL;
Run Code Online (Sandbox Code Playgroud)

postgresql function

3
推荐指数
1
解决办法
3347
查看次数

如何调用Postgres函数返回SETOF记录?

我写了以下函数:

    -- Gets stats for all markets
CREATE OR REPLACE FUNCTION GetMarketStats (
)
RETURNS SETOF record
AS
$$
BEGIN
 SELECT 'R approved offer' AS Metric,
 SUM(CASE WHEN M.MarketName = 'A+' AND M.Term = 24 THEN LO.Amount ELSE 0 end) AS MarketAPlus24,
 SUM(CASE WHEN M.MarketName = 'A+' AND M.Term = 36 THEN LO.Amount ELSE 0 end) AS MarketAPlus36,
 SUM(CASE WHEN M.MarketName = 'A' AND M.Term = 24 THEN LO.Amount ELSE 0 end) AS MarketA24,
 SUM(CASE WHEN M.MarketName = 'A' AND …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

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