小编Lau*_*lbe的帖子

什么是Y-combinator?

Y-combinator是一种来自事物"功能"方面的计算机科学概念.大多数程序员对组合器一无所知,如果他们甚至听说过它们的话.

  • 什么是Y-combinator?
  • 组合器如何工作?
  • 它们有什么用?
  • 它们在程序语言中有用吗?

theory computer-science functional-programming combinators definition

381
推荐指数
14
解决办法
10万
查看次数

何时使用SELECT ... FOR UPDATE?

请帮我理解背后的用例SELECT ... FOR UPDATE.

问题1:以下是SELECT ... FOR UPDATE应该何时使用的一个很好的例子?

鉴于:

  • 客房[ID]
  • 标签[id,name]
  • room_tags [room_id,tag_id]
    • room_id和tag_id是外键

该应用程序希望列出所有房间及其标签,但需要区分没有标签的房间与已移除的房间.如果未使用SELECT ... FOR UPDATE,可能发生的情况是:

  • 原来:
    • 房间包含 [id = 1]
    • 标签包含 [id = 1, name = 'cats']
    • room_tags包含 [room_id = 1, tag_id = 1]
  • 线程1: SELECT id FROM rooms;
    • returns [id = 1]
  • 线程2: DELETE FROM room_tags WHERE room_id = 1;
  • 线程2: DELETE FROM rooms WHERE id = 1;
  • 线程2:[提交交易]
  • 线程1: SELECT tags.name FROM room_tags, tags WHERE room_tags.tag_id = 1 AND tags.id …

mysql sql sql-server transactions select-for-update

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

输入文件似乎是文本格式转储.请使用psql

我使用备份

pg_dump db_production > postgres_db.dump
Run Code Online (Sandbox Code Playgroud)

然后我使用scp将其复制到localhost.

现在,当我导入我的本地数据库时,它会出错

pg_restore: [archiver] input file appears to be a text format dump. Please use psql.
Run Code Online (Sandbox Code Playgroud)

通过使用commad行

pg_restore -d db_development postgres_db.dump
Run Code Online (Sandbox Code Playgroud)

postgresql backup pg-restore

51
推荐指数
8
解决办法
6万
查看次数

Postgres SELECT ... FOR UPDATE in functions

关于在Postgres函数中使用SELECT ... FOR UPDATE行级锁定,我有两个问题:

  • 我选择哪一列是否重要?他们与我需要锁定然后更新的数据有什么关系吗?

    SELECT * FROM table WHERE x=y FOR UPDATE;
    
    Run Code Online (Sandbox Code Playgroud)

    VS

    SELECT 1 FROM table WHERE x=y FOR UPDATE;
    
    Run Code Online (Sandbox Code Playgroud)
  • 我不能在没有保存数据的情况下在函数中进行选择,所以我保存为虚拟变量.这似乎是hacky; 这是正确的做事方式吗?

这是我的功能:

CREATE OR REPLACE FUNCTION update_message(v_1 INTEGER, v_timestamp INTEGER, v_version INTEGER)
RETURNS void AS $$
DECLARE
    v_timestamp_conv TIMESTAMP;
    dummy INTEGER;
BEGIN
    SELECT timestamp 'epoch' + v_timestamp * interval '1 second' INTO v_timestamp_conv;
    SELECT 1 INTO dummy FROM my_table WHERE userid=v_1 LIMIT 1 FOR UPDATE;
    UPDATE my_table SET (timestamp) = (v_timestamp_conv) WHERE userid=v_1 AND version < v_version; …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql postgresql-9.1 select-for-update

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

Pgadmin 未加载

我最近在我的笔记本电脑上安装了 pgadmin4,当我启动应用程序时,它只是卡在加载中。我查看了日志,这就是我所看到的:

载入画面截图

日志

2020-11-14 00:22:46: Checking for system tray...
2020-11-14 00:22:46: Starting pgAdmin4 server...
2020-11-14 00:22:46: Creating server object, port:64222, key:2a079549-63da-44d2-8931-efa9de3a847f, logfile:C:/Users/yonis/AppData/Local/pgadmin4.d41d8cd98f00b204e9800998ecf8427e.log
2020-11-14 00:22:46: Python Path: C:/Program Files/PostgreSQL/13/pgAdmin 4/venv/Lib/site-packages;C:/Program Files/PostgreSQL/13/pgAdmin 4/venv/DLLs;C:/Program Files/PostgreSQL/13/pgAdmin 4/venv/Lib
2020-11-14 00:22:46: Python Home: C:/Program Files/PostgreSQL/13/pgAdmin 4/venv
2020-11-14 00:22:46: Initializing Python...
2020-11-14 00:22:46: Python initialized.
2020-11-14 00:22:46: Adding new additional path elements
2020-11-14 00:22:46: Redirecting stderr...
2020-11-14 00:22:46: stderr redirected successfully.
2020-11-14 00:22:46: Initializing server...
2020-11-14 00:22:46: Webapp Path: C:/Program Files/PostgreSQL/13/pgAdmin 4/web/pgAdmin4.py
2020-11-14 00:22:46: Server initialized, starting …
Run Code Online (Sandbox Code Playgroud)

python postgresql pgadmin heroku-postgres pgadmin-4

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

SQLAlchemy - 选择更新示例

我正在寻找在SQLAlchemy中使用select for update的完整示例,但是没有找到一个谷歌搜索.我需要锁定单行并更新列,以下代码不起作用(永久阻塞):

s = table.select(table.c.user=="test",for_update=True)
# Do update or not depending on the row
u = table.update().where(table.c.user=="test")         
u.execute(email="foo") 
Run Code Online (Sandbox Code Playgroud)

我需要提交吗?我怎么做?据我所知,你需要:开始事务选择...用于更新更新提交

python sqlalchemy select-for-update

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

错误:绑定消息有 9914 个参数格式,但有 0 个参数

我正在使用 PostgresSQL,并且尝试删除列中的所有数据(我的实体由 和 组成idname,但是当我运行代码时,会出现一条错误消息。

这是代码(我使用 NestJs 和 TypeOrm):

    @Injectable()
export class ClearLinioBrands {
  constructor(
    @InjectRepository(LinioBrand)
    private linioBrandRepo: Repository<LinioBrand>,
  ) {}
  async execute(): Promise<void> {
    const existingBrands = await this.linioBrandRepo.find();
    await this.linioBrandRepo.remove(existingBrands);
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我在控制台上收到以下错误:

    @Injectable()
export class ClearLinioBrands {
  constructor(
    @InjectRepository(LinioBrand)
    private linioBrandRepo: Repository<LinioBrand>,
  ) {}
  async execute(): Promise<void> {
    const existingBrands = await this.linioBrandRepo.find();
    await this.linioBrandRepo.remove(existingBrands);
  }
}
Run Code Online (Sandbox Code Playgroud)

该表中有 115900 行,这是此行为的原因吗?我应该怎么办?

postgresql typeorm nestjs

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

PostgreSql:'utf8'编解码器无法解码位置42的字节0xe9:无效的连续字节

我最近安装了PostgreSql,我正在尝试创建一个新的数据库.不幸的是,我在创建数据库时遇到了错误:

"'utf8'编解码器无法解码位置42的字节0xe9:无效的连续字节" 在此输入图像描述

有什么问题,谢谢你

postgresql pgadmin-4

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

postgresql:未实现跨数据库引用:

我正在尝试将SQL内部联接查询转换为PostgreSQL内部联接查询。在此内部联接查询中,正在使用哪些表,即所有表都不在一个数据库中。我们将表分为两个数据库,即应用程序数据库和安全性数据库

  1. 用户和权限表位于安全数据库中
  2. userrolemapping和部门存在于应用程序数据库中

我尝试如下所示,但出现以下错误

错误

ERROR:  cross-database references are not implemented: "Rockefeller_ApplicationDb.public.userrolemapping"
LINE 4:         INNER JOIN "Rockefeller_ApplicationDb".public.userro..
Run Code Online (Sandbox Code Playgroud)

SQL存储功能

SELECT   Department.nDeptID 
    FROM Users INNER JOIN Permission 
         ON Users.nUserID = Permission.nUserID INNER JOIN UserRoleMapping
         ON Users.nUserID = UserRoleMapping.nUserID INNER JOIN Department
         ON Permission.nDeptInst = Department.nInstID
         AND  Department.nInstID = 60
    WHERE     
         Users.nUserID = 3;
Run Code Online (Sandbox Code Playgroud)

PostgreSQL存储函数

SELECT dep.ndept_id 
        FROM "Rockefeller_SecurityDb".public.users as  u 
        INNER JOIN  "Rockefeller_SecurityDb".public.permissions p ON u.nuser_id = p.nuser_id
        INNER JOIN "Rockefeller_ApplicationDb".public.userrolemapping as urm ON u.nuser_id = urm.nuser_id
        INNER JOIN "Rockefeller_ApplicationDb".public.department dep ON …
Run Code Online (Sandbox Code Playgroud)

postgresql inner-join

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

查找 Postgres 表的副本标识

有没有办法查看 Postgres 表具有什么样的副本标识,无论是使用 pgAdmin 还是通过查询?

postgresql logical-replication

12
推荐指数
1
解决办法
4123
查看次数