我刚刚注意到 PostgreSQL 允许在数据库中重复外键(以及可能的其他约束)名称,只要它们位于不同的表上即可。
因此,如果父表是并且Foo它有两个子表,则两个表上的外键都可以命名。BarXBarYFK_fooid
在我看来,这是一个糟糕的设计,因为
select * from information_schema.referential_constraints
where constraint_name = 'FK_fooid'
Run Code Online (Sandbox Code Playgroud)
将返回两行相同的行,无法区分哪一行对应于哪个表/键。
有没有办法在 Postgres 中的数据库中禁用约束名称的重复,并强制每个约束都有唯一的名称?
是否可以在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 中有一个表值函数,我同事的某个人意外地更改了它。如何轻松恢复以前的版本?有什么办法可以找到以前的版本吗?
我以前从未见过这个问题。我遇到了问题,许多 PostgreSQL 进程被卡住了,所以我用 -KILL 杀死了它们...
当我尝试重新启动时,它说它无法重新启动,但守护进程继续运行并使用少量处理器进行大量 I/O。它是否正在尝试修复数据库?
我根本没有得到任何日志。我认为有一种方法可以增加日志输出......我会研究一下。此时,连接到服务器的套接字没有被创建,但服务器没有退出或发出任何错误/消息,所以我不知道发生了什么!?
如果有人有线索,我会很高兴听到。
为了重新加载配置文件,我们向 postmaster 发送 SIGHUP 信号,然后将其传递给所有连接的后端。这就是为什么有些人将重新加载服务器称为“叹息”的原因。
由于重新加载配置文件是通过发送 SIGHUP 信号来实现的,因此我们可以使用 kill 命令为单个后端重新加载配置文件。
首先,使用 pg_stat_activity 找出后端的 pid。然后,从操作系统提示符处发出以下命令:
Run Code Online (Sandbox Code Playgroud)kill -SIGHUP pid
我看不懂粗体字。因为我们有很多后端 PID,如果我们杀死一个 PID,它如何从重新加载配置文件(postgresql.conf)中获取更改?
我有一个表,其中每一行都有如下数据:
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) 我有一个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) 我有一个名为 的表photo,其中包含 3 列
如何查看存储的图像?
(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)