小编Jac*_*las的帖子

如何简洁地检查子查询是否只有一个不同的结果和指定的值?

我发现自己写了以下内容:

select 'yes' 
where exists(select * from foo where val=1)
and not exists(select * from foo where val<>1);
Run Code Online (Sandbox Code Playgroud)

并想知道是否有更简洁的方法而不牺牲太多的可读性。

我找到了一种作为答案发布的方法,但我对此并不完全满意,并且对替代方案非常感兴趣

在这种情况下val是唯一的foo- 没有重复

postgresql duplication

10
推荐指数
2
解决办法
5547
查看次数

在 MySQL 5.5 中拥有类似 PostgreSQL 的部分索引

我有大数据,我一次只选择一小段数据,这样选择总是按顺序排列的。我正在尝试在 MySQL 中实现像 Partial index 这样的 PostgreSQL,这是针对此类目的。我不确定部分唯一约束是否与我想要的相同。

PostgreSQL 9.4 中的代码

CREATE UNIQUE INDEX dir_events
    ON events (measurement_id)
    USING btree
    (eventBody)
    WHERE is_active;
Run Code Online (Sandbox Code Playgroud)

尝试在 MySQL 中对 ypercube 的部分索引

CREATE UNIQUE INDEX dir_events
    [index_type] -- TODO what here?
    ON events (measurement_id, is_active)
    [index_type] -- TODO what here?
Run Code Online (Sandbox Code Playgroud)

如何在 MySQL 5.5 或类似版本中创建类似 PostgreSQL 的部分索引?

mysql index

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

我可以依赖首先在 SQL 中执行的函数吗

请考虑以下脚本:

create or replace function f(p_limit in integer) return integer as
begin
  set_global_context ('limit', p_limit);
  return p_limit;
end;
/

create view v as 
select level as val from dual connect by level<=sys_context('global_context','limit');

select f(2), v.* from v;

/*
F(2)                   VAL                    
---------------------- ---------------------- 
2                      1                      
2                      2                      
*/

select f(4), v.* from v;

/*
F(4)                   VAL                    
---------------------- ---------------------- 
4                      1                      
4                      2                      
4                      3                      
4                      4                      
*/
Run Code Online (Sandbox Code Playgroud)

我可以依赖在f(x)视图内部读取上下文之前执行,就像在 10.2 上运行的这个测试用例一样吗?

oracle

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

为什么在子选择中允许“非单组功能”而不是它自己的功能?

为什么第一个查询不会失败并出现与第二个相同的错误:

with w as (select 1 product_id, 10 units from dual union all select 2, 5 from dual)
select sum(units) from (select product_id, sum(units) units from w);

/*
SUM(UNITS)
----------
        15 
*/

with w as (select 1 product_id, 10 units from dual union all select 2, 5 from dual)
select product_id, sum(units) units from w;

/*
Error starting at line 7 in command:
with w as (select 1 product_id, 10 units from dual union all select 2, 5 from dual) …
Run Code Online (Sandbox Code Playgroud)

oracle oracle-11g-r2

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

什么是孤儿化身?

化身在解释回答另一个问题,在这个网站。答案提到了“孤儿”的化身:

…还有其他因素会导致 ORPHANED 化身和 OBSOLETE 备份…

从 Oracle 文档中看到,V$DATABASE_INCARNATION其中包含一个STATUS列,该列可以具有ORPHAN,CURRENT或 的值PARENT,它们必须是相关的。

什么是“孤儿”化身,哪些步骤会导致带有STATUS= ORPHANin的一行V$DATABASE_INCARNATION

oracle recovery

9
推荐指数
2
解决办法
4820
查看次数

DB2 是否按主键排序数据

我最近与一位同事进行了讨论,他正在推动从生产查询中删除 order by 子句,因为order by 列与主键相同

经过长时间的讨论,我试图解释他不能保证基于主键的排序,最后的结论是他不会推动更改 MSSQL 查询。
但他仍打算更改 DB2 查询。

我无法立即找到反驳 DB2 按主键排序查询的文章,目前我想知道它是否确实如此。

所以我的问题是,如果没有 order by 子句,DB2 如何对查询进行排序?它使用主键吗?
在并行系统中,如果没有 order by 子句,如何保证数据按顺序正确输出?

db2 order-by

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

如果我在 SQL*Plus 中设置 ARRAYSIZE 1,记录仍然是成对提取的。为什么?

我想写一个简单的 tail -f实用程序来“跟踪”数据库中某些数字的进度:

create or replace function tail_f return varchar2_tab pipelined as
   n number;
begin

    loop
      exit when ...

      select count(*) into n from ... where ...;

      pipe row(sysdate || ' n= ' || n);
      dbms_lock.sleep(60);
    end loop;

    return;
end tail_f;
Run Code Online (Sandbox Code Playgroud)

然后我想select * from table(tail_f)在 SQL*Plus 中。

为了一一获取行,我SET ARRAYSIZE 1. 然而,记录(第一个除外)是成对获取的。

对此是否有解释,以及如何在通过管道传输后立即获取记录?

oracle sqlplus

7
推荐指数
2
解决办法
1774
查看次数

如何组织我的桌子?

我的数据库包含 200 多个表。当我想修改或插入一个表时,我发现在所有这些表中很难找到它。

  • 有没有办法在我的数据库内的文件夹结构中收集相关表?我有几组文件夹,每个文件夹都包含我的应用程序某个部分的表。
  • 如果这是不可能的,我如何管理所有这些表并让自己变得容易?

schema sql-server

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

如何在 postgresql 中验证我的所有约束?

似乎我被 postgresql 9.3.4 的发行说明中描述的第一个错误所困扰:http : //www.postgresql.org/docs/devel/static/release-9-3-4.html

我现在有例如重复的主键。对所有约束(pkeys、fkeys)进行重新检查循环的最佳方法是什么 -> 修复问题 -> 再次检查以确保我的数据正常?

更新

我决定通过删除所有约束来解决问题,然后使用以下方法重新创建它们http://blog.hagander.net/archives/131-Automatically-dropping-and-creating-constraints.html。但是我目前被困在一条错误消息上,试图重新创建一个 pkey:

ERROR:  failed to find parent tuple for heap-only tuple at (1192248,5) in table "fruits"
CONTEXT:  SQL statement "ALTER TABLE "pm"."fruits" ADD CONSTRAINT "fruits_pkey" PRIMARY KEY (id)"
Run Code Online (Sandbox Code Playgroud)

这是什么意思,我该如何解决这个问题(如果可以的话,我可以忍受删除它)?

另一个问题:如果我只是通过删除重复行来摆脱它们,然后执行 pg_dump,并从该转储中恢复数据库,那么我的数据实际上是否一切正常。它会重建数据结构 - 对吗?

postgresql foreign-key constraint primary-key postgresql-9.3

7
推荐指数
3
解决办法
7590
查看次数

导入数据的解决方法

我正在尝试将数据导入 SQL Server。我可以通过导入和导出数据向导导入。我无法使用BULK IMPORTOPENROWSET因为文件不在服务器机器上从我的机器导入。IED 向导如何将数据插入其目标数据库?是一行一行的吗?

从我的机器导入数据还有其他可能的解决方案吗?

sql-server-2008 import

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