小编Bas*_*que的帖子

Microsoft SQL Server 是否提供像 Postgres 那样的咨询锁功能?

在 Postgres 中,Advisory Locks特性提供了在数据库服务器中集中管理的任意应用程序定义的锁。这些锁与表或行等无关。

Microsoft SQL Server 是否提供类似这些建议锁的功能?

sql-server locking

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

MS SQL Server 中应用锁的限制

Microsoft SQL Server 通过sp-getapplock命令和相关命令提供任意应用程序定义的锁定机制。

键, or resource_name,被指定为一个字符串,一个 varchar 255。但文档还提到键/名称是散列的。

所以这让我想知道:

  • 使用什么样的哈希函数?
  • 该散列函数的结果分布情况如何?
  • 我应该使用什么样的输入来扩大散列结果的分布,以尽量减少巧合碰撞的机会?
  • 我可以激活的应用锁数量的理论和实践限制是什么?
  • 应用锁使用哪些资源,例如内存量或内存限制?

我正在为特殊需求应用程序的许多表的行实施悲观锁定机制。作为我的应用锁键/名称,我计划使用一个代表每个表的数字与存储在每一行中的 ID 号相结合。示例键/名称可能类似于mydb_myschema_table0000000142_row0000241738. 我可能一次有许多活动,所以我需要了解这些限制。

sql-server locking limits

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

防止 PostgreSQL 中的 DROP COLUMN

我可以阻止 DROP COLUMN 在 PostgreSQL 9 或 10 或更高版本中的特定表上成功吗?

我的应用程序对列永远存在而不是消失做了一些假设。我怕后来的程序员忘记这个约束。

我知道触发器可以触发来控制行的插入、修改和删除。但是DDL呢?我可以防止表结构发生某些变化吗?

安全可能是一种方式,为用户和角色分配权限。但是这些未来的程序员将被允许添加列,只禁止删除列。

担心恶意活动。我正在防御那些可能行动太快而无法记住大局的急切海狸。

postgresql ddl

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

使用 TIME WITH TIME ZONE 的有效用例是什么?

沿着这个相关问题的思路:

是否有任何有效的实际使用用例 TIME WITH TIME ZONE或应该将其视为反模式?

需要明确的是:我问的是TIME…,而不是TIMESTAMP…

postgresql database-design datatypes timezone time

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

从 Postgres 11 中的服务器端过程返回多个结果集

Postgres 咨询公司的这篇博文提到 Postgres 11 中新的服务器端过程支持将能够返回多个结果集。

? 这个特性确实出现在 Postgres 11 版本中吗?

如果是这样,你能简单解释一下它是如何工作的吗?显示一些代码示例?

postgresql stored-procedures postgresql-11

5
推荐指数
2
解决办法
4175
查看次数

为什么我无法访问 Pgadmin3 中的服务器配置?

我的 Postgres 服务器正在运行 (localhost:5432),但工具 > 服务器配置对我来说是灰色的,如下所示。我试图访问它来编辑/定位我的 postgres.conf 文件。无法访问服务器配置

postgresql pgadmin pgadmin-3

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

如何获取有关 Postgres 10 中新标识列背后的序列的信息?(生成 { 始终 | 默认} 作为身份)

Postgres 10 带来了 SQL 标准GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY特性的实现,松散地称为标识列。这个特性取代了 Postgres 自己的SERIAL伪类型,消除了它的问题/问题。有关更多信息,请参阅此处此处

GENERATED…优于的主要原因之一SERIAL是序列号生成器在后台透明处理。我们可以添加列、调整当前序列号和删除列,所有这些都无需明确引用序列。

CREATE TABLE tbl (
    col  BIGINT 
         GENERATED ALWAYS AS IDENTITY 
         PRIMARY KEY ,
    col2 text
) 
;
Run Code Online (Sandbox Code Playgroud)

和…

ALTER TABLE tbl
ALTER COLUMN col
RESTART WITH 1000
;
Run Code Online (Sandbox Code Playgroud)

和…

ALTER TABLE tbl
ALTER COLUMN col
DROP IDENTITY IF EXISTS
;
Run Code Online (Sandbox Code Playgroud)

或者…

ALTER TABLE tbl
ALTER COLUMN col
DROP COLUMN IF EXISTS …
Run Code Online (Sandbox Code Playgroud)

postgresql identity postgresql-10

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

如何使用 pgAdmin 4 编辑 `postgresql.conf`?

与此相同的问题:How to edit postgresql.confwith pgAdmin 3? 但更新为全新的(完全重写)pgAdmin 4

\n\n

\xe2\x9e\xa5 如何使用pgAdmin 4应用程序编辑配置文件?

\n\n
    \n
  • postgresql.conf
  • \n
  • pg_hba.conf
  • \n
\n\n

我添加了adminpack扩展,如此处所述。我重新启动了pgAdmin 4。然而我无法识别任何菜单项或其他界面项来编辑此文件。

\n

postgresql configuration pgadmin-4

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

在 macOS 上将用户切换到“postgres”用户会导致“su:抱歉”错误

EnterpriseDB.com 向社区提供的Postgres 安装程序通常会在macOSpostgres上创建一个用户帐户。

\n\n

在Terminal.app的控制台会话中,我需要切换到该用户。我的目标是使用该 user\xe2\x80\x99s 权限运行文本编辑器,以便我可以编辑pg_hba.conf控制 Postgres 用户身份验证规则的文件。

\n\n

当我尝试时:

\n\n
su - postgres\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\xa6 系统提示我输入用户密码,我输入成功,但收到错误消息:

\n\n
\n

苏:对不起

\n
\n\n

我确信密码是正确的。我可以做什么来访问该postgres用户?

\n

postgresql permissions users

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

如何正确地从 Oracle 数据库中删除 java 源代码?

我的 Java 源代码有点卡在这里。首先我想从数据库中完全删除它,因为我想重新编译它,但我不能删除它,因为如果我执行这个命令:

drop java source "SCHEMA.JAVASOURCENAME";
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ORA-04043: object JAVASOURCENAME does not exist
Run Code Online (Sandbox Code Playgroud)

Javasource 本身具有这种结构(这是它的 plsql/java 代码):

create or replace and compile java source named myjavasource as

import java.io.*;
import some.custom.jar.one.*;
import some.custom.jar.two.*;
import some.custom.jar.three.*;

    public class MyJavaClass
    {
      public static String myjavafunction(String connectString, String identity, String password)
      {
       ...
      }
    }
Run Code Online (Sandbox Code Playgroud)

我以 DBA 身份和我的用户执行了这个“创建或替换和编译 java 源代码...”命令,我不知道这是否可能是问题所在。

所以我的问题是,我怎样才能删除这个 java 源代码?

我的第二个问题是我可以处理自定义 jars 吗?我用这个命令导入了它们:

call dbms_java.loadjava('-genmissing -r -v -force -grant SCHEMA ./some.custom.jar.one.jar');
Run Code Online (Sandbox Code Playgroud)

我还以 DBA 身份和我的用户执行了此操作。如果是检查无效对象:

SELECT *
    FROM user_objects
    WHERE …
Run Code Online (Sandbox Code Playgroud)

oracle plsql java

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