小编dez*_*zso的帖子

强制约束名称唯一性

我刚刚注意到 PostgreSQL 允许在数据库中重复外键(以及可能的其他约束)名称,只要它们位于不同的表上即可。

因此,如果父表是并且Foo它有两个子表,则两个表上的外键都可以命名。BarXBarYFK_fooid

在我看来,这是一个糟糕的设计,因为

select * from information_schema.referential_constraints
where constraint_name = 'FK_fooid' 
Run Code Online (Sandbox Code Playgroud)

将返回两行相同的行,无法区分哪一行对应于哪个表/键。

有没有办法在 Postgres 中的数据库中禁用约束名称的重复,并强制每个约束都有唯一的名称?

postgresql

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

是否可以在没有手动 INSERT 语句的情况下使用生成的数据生成表?

是否可以在SQL Server 2008中使用SQLCMD创建表并生成数据并插入表中,而无需手动INSERT为每一行键入语句?

例子:

假设有 10 周(1、2、3 ... 10)和 2 个时间点(上午 11 点、下午 12 点)和 5 个场地(房间 1、房间 2 ... 房间 5)。因此总共会有 10 x 2 x 5 = 100 行。

那么,在给定 3 个数据参数(周、时间和地点)的情况下,是否有可能生成这 100 行的 SQL 语句?

+--------------------------------+
| Week    |   Time   |   Venue   |
+--------------------------------+
| 1       |  11 am   |  Room 1   |
| 1       |  12 pm   |  Room 1   |
| 1       |  11 am   |  Room 1   |
|                                |
| 10      | …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server sqlcmd

0
推荐指数
1
解决办法
309
查看次数

在 SQL Server 上查找表值函数定义的更改

我在 SQL Server 中有一个表值函数,我同事的某个人意外地更改了它。如何轻松恢复以前的版本?有什么办法可以找到以前的版本吗?

sql-server-2008 sql-server

0
推荐指数
1
解决办法
162
查看次数

PostgreSQL 没有正确启动,是先自我修复吗?

我以前从未见过这个问题。我遇到了问题,许多 PostgreSQL 进程被卡住了,所以我用 -KILL 杀死了它们...

当我尝试重新启动时,它说它无法重新启动,但守护进程继续运行并使用少量处理器进行大量 I/O。它是否正在尝试修复数据库?

我根本没有得到任何日志。我认为有一种方法可以增加日志输出......我会研究一下。此时,连接到服务器的套接字没有被创建,但服务器没有退出或发出任何错误/消息,所以我不知道发生了什么!?

如果有人有线索,我会很高兴听到。

postgresql

0
推荐指数
1
解决办法
1944
查看次数

PostgreSQL kill - Sighup pid

为了重新加载配置文件,我们向 postmaster 发送 SIGHUP 信号,然后将其传递给所有连接的后端。这就是为什么有些人将重新加载服务器称为“叹息”的原因。

由于重新加载配置文件是通过发送 SIGHUP 信号来实现的,因此我们可以使用 kill 命令为单个后端重新加载配置文件

首先,使用 pg_stat_activity 找出后端的 pid。然后,从操作系统提示符处发出以下命令:

kill  -SIGHUP pid
Run Code Online (Sandbox Code Playgroud)

我看不懂粗体字。因为我们有很多后端 PID,如果我们杀死一个 PID,它如何从重新加载配置文件(postgresql.conf)中获取更改?

postgresql postgresql-9.1

0
推荐指数
1
解决办法
2271
查看次数

从双引号括起来的记录中删除一个字符

我有一个表,其中每一行都有如下数据:

0150566115,"HEALTH 401K","IC,ON","ICON HEALTH 401K",,,1,08/21/2014
Run Code Online (Sandbox Code Playgroud)

我想要的是删除,包含在双引号“”之间的每个逗号 ( )。然后用逗号 ( ,)分割字符串的其余部分

我不想检查双引号开始和结束的每个字符设置标志。

我可以实现某种正则表达式吗?

有没有简单的方法?

到目前为止,我所尝试的只是根据逗号 ( ,)拆分字符串,但它也在拆分引号内的值。

这是为了达到目的:如何在完整的表中实现这一点(目前,如果我只有一个双引号块实例,它就可以工作)?

Declare @Query nvarchar(max) 

Set @Query = 'Item1,Item2,"Item,Demo,3",New'

Declare @start int, @len int
SELECT @start = PATINDEX('%"%"%', @Query) + 1

print @start

select @len = CHARINDEX('"', SUBSTRING(@Query, @start, LEN(@Query))) - 1

select 
        SUBSTRING(@Query, 1, @start - 2) +
        REPLACE((SUBSTRING(@Query, @start, @len)), ',', '') +
        SUBSTRING(@Query, @start + @len + 1, LEN(@Query))
Run Code Online (Sandbox Code Playgroud)

这是我用来分割的函数

ALTER FUNCTION [dbo].[fnSplit](
    @sInputList VARCHAR(8000) -- List of …
Run Code Online (Sandbox Code Playgroud)

sql-server regular-expression t-sql string-splitting

0
推荐指数
1
解决办法
6468
查看次数

想知道为什么这个查询会这样?

我有一个emp表,其中包含架构和一些初始值,如下所示:

 emp_id | name | last_name | role_id 
--------+------+-----------+---------
      1 | hell | bell      |       1
      2 | well | tell      |       2
(2 rows)
Run Code Online (Sandbox Code Playgroud)

以及另一个role表,该emp表已在 上引用role_id。下面是role表格:

 role_id | role_name 
---------+-----------
       1 | tech
       2 | op
       3 | dev
(3 rows)
Run Code Online (Sandbox Code Playgroud)

我只是在玩,写了下面的查询,我认为这没有多大意义。

SELECT emp.name, role.role_name, emp.emp_id 
FROM emp 
INNER JOIN role 
    ON emp.role_id = (
        SELECT role_id from role WHERE role_name = 'tech'
    );
Run Code Online (Sandbox Code Playgroud)

它工作并返回了这个结果:

 name | role_name | …
Run Code Online (Sandbox Code Playgroud)

postgresql

0
推荐指数
1
解决办法
72
查看次数

如何检索存储在 pg_toast 模式的 bytea 列中的图像?

我有一个名为 的表photo,其中包含 3 列

  • chunk_id oid
  • chunk_sq 整数
  • chunk_data 字节

如何查看存储的图像?

(bytea) 类型列包含数据,如

'034\350sec\302\340s\221\\030seq\301\037\022\034seq`uence!V!\364s\030ett\241\376\001\310sho\214rt\224\204\002Tize\001\240\370sloDR#\024\002\020\023\273\003\240\360ourc\324\.................'

select * from pg_toast.photo
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.6

0
推荐指数
1
解决办法
1028
查看次数