相关疑难解决方法(0)

如何在MySQL中声明变量?

如何在mysql中声明一个变量,以便我的第二个查询可以使用它?

我想写一些类似的东西:

SET start = 1;
SET finish = 10;

SELECT * FROM places WHERE place BETWEEN start AND finish;
Run Code Online (Sandbox Code Playgroud)

mysql sql

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

查询参数(postgresql.conf设置),如"max_connections"

有谁知道在PostgreSQL(9.1)中查询数据库服务器设置是否可行(以及如何,如果是)?

我需要查看max_connections(最大打开数据库连接数)设置.

postgresql settings configuration postgresql-9.1

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

有没有办法在PostgreSQL查询中定义命名常量?

有没有办法在PostgreSQL查询中定义命名常量?例如:

MY_ID = 5;
SELECT * FROM users WHERE id = MY_ID;
Run Code Online (Sandbox Code Playgroud)

sql postgresql

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

将用户标识传递给PostgreSQL触发器

我正在使用PostgreSQL 9.1.我的数据库是结构化的,以便我的应用程序使用实际的表.对于每个表,都有历史表,仅存储更改历史记录.历史表包含相同的字段,实际表格和字段形成一些额外信息,例如.编辑时间.历史表仅由触发器处理.

我有两种触发器:

  1. Before INSERT 触发器在创建表时向表添加一些额外信息(例如,create_time).
  2. Before UPDATE触发器和before DELETE触发器将旧值从实际表复制到历史表.

问题是我想使用触发器来存储进行这些更改的用户的ID.而id我是来自php应用程序的id,而不是PostgreSQL用户id.

有没有合理的方法呢?

使用INSERT和UPDATE,可以只将id的额外字段添加到实际表中,并将用户id作为SQL查询的一部分传递给SQL.据我所知,这不适用于DELETE.

所有触发器的结构如下:

CREATE OR REPLACE FUNCTION before_delete_customer() RETURNS trigger AS $BODY$
BEGIN
    INSERT INTO _customer (
        edited_by,
        edit_time,
        field1,
        field2,
        ...,
        fieldN
    ) VALUES (
        -1, // <- This should be user id.
        NOW(),
        OLD.field1,
        OLD.field2,
        ...,
        OLD.fieldN
    );
    RETURN OLD;
END; $BODY$
LANGUAGE plpgsql
Run Code Online (Sandbox Code Playgroud)

postgresql triggers

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

PostgreSQL在函数外部循环.那可能吗?

我正在对PostgreSQL与SQLServer进行比较,以便进行迁移.现在我正在评估T-SQL与PL/pgSQL,事实是在T-SQL中你可以使用循环或声明变量,例如:

declare @counter int
set @counter = 0
while @counter < 10
begin
   set @counter = @counter + 1
   print 'The counter is ' + cast(@counter as char)
end
Run Code Online (Sandbox Code Playgroud)

没有必要将它放在函数或过程中.我可以在PostgreSQL中做到吗?

在网上搜索我在MySQL中找到了一个否定的答案,但我没有找到Postgres的答案.

t-sql postgresql loops function plpgsql

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

PostgreSQL中用户定义的变量

我有以下MySQL脚本,我想在PostgreSQL中实现.

 SET @statement = search_address_query;
      PREPARE dynquery FROM @statement;
      EXECUTE dynquery;
      DEALLOCATE PREPARE dynquery;
Run Code Online (Sandbox Code Playgroud)

如何使用PostgreSQL定义用户定义的变量"@statement".

postgresql variables dynamic-sql

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