小编a_h*_*ame的帖子

表检查约束以验证特定值的唯一性

Oracle 10g:假设有下表(T_REGISTER):

ID_PROCESS   PERIOD    CUSTOMER    STATUS
===========================================
0001234      201801    12300344    INVALID
0001236      201801    12300344    INVALID
0001246      201801    12300344    UNPAID
0001249      201801    12300344    UNPAID
0001278      201801    12300344    COMPLETED
Run Code Online (Sandbox Code Playgroud)

ID_PROCESS 是 PK。但我也需要 (PERIOD + CUSTOMER + STATUS) 在 STATUS 完成时是唯一的。

换句话说,对于一个 UNIQUE (PERIOD + CUSTOMER),我不在乎有几个 INVALID 或 UNPAID 行,但我只能承认一个唯一的 (PERIOD;CUSTOMER;STATUS="COMPLETED")

在寻求触发解决方案之前,有没有使用 CHECK CONSTRAINT 的优雅解决方案?提前致谢...

oracle ddl check-constraints

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

两连续行之间的时差

我需要简单的 SQL 来计算两个连续行之间的时间差异,任何人都可以提供帮助

在此处输入图片说明

oracle

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

如何在 MySQL 内的一个单元格中存储多个数据?

我想连续存储多个日期。每行都有一个唯一的id,每个对应的id可以有多个操作日期。每行的日期数可能不同。我有多个 ID,每个 ID 都有多个日期。

ID 日期1 日期2 日期3 ... ... ...
1 2018-05-19 2018-04-09 2018-08-09
2 2016-01-30 2017-05-04 2016-06-07 2020-05-17 2021-06-23 ...
3 2001-05-06
4 2018-11-05 2013-06-09

为给定存储多个日期的最佳方法是什么id

mysql database-design

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

将 MDF 文件附加到 SSMS

我正在尝试将 .mdf 文件附加到我的 SSMS 安装中。我完成了这些步骤,最后我收到了这条消息。

是什么导致 .mdf 文件无法附加?

另外,我已经验证 .mdf 文件不是只读的。

在此处输入图片说明

编辑
如果我运行,Select @@Version我会得到我有 2008 年的输出,这是我的 .mdf 文件所需要的..

在此处输入图片说明

sql-server

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

相同的查询,不同的结果(取决于用户的权限)

关于 SQL 的一般问题:

如果两个用户执行同一个sql语句,有没有可能user1和user2得到不同的结果?

想象一下 user1 比 user2 拥有更多的权限。

换句话说:user1 有可能收到 100 行,而 user2 只收到 80 行吗?

我的问题是关于 SQL 标准。

但是可以在评论中随意谈论特定数据库系统的实现。

permissions sql-standard

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

索引如何加快表中的插入速度

索引如何加速表中的插入?

我知道检索行和数据选择是如何发生的,但它如何帮助插入?

CREATE TABLE  persons(
id NUMBER ,
first_name VARCHAR2(50) NOT NULL,
PRIMARY KEY(id)
);
Run Code Online (Sandbox Code Playgroud)

如果在 first_name 上创建索引

create index name_idx on persons(first_name) 
Run Code Online (Sandbox Code Playgroud)

它如何加速下面的查询?

INSERT INTO suppliers (id,first_name) VALUES (01, 'SAI');
INSERT INTO suppliers (id,first_name) VALUES (02, 'CHRI');
INSERT INTO suppliers (id,first_name) VALUES (03, 'MASSEY');
INSERT INTO suppliers (id,first_name) VALUES (04, 'FREDDIE');
INSERT INTO suppliers (id,first_name) VALUES (05, 'ROGER');
Run Code Online (Sandbox Code Playgroud)

index oracle clustered-index index-tuning

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

SQL 服务器迁移 - 服务器对象列表/脚本工具

我们需要快速迁移多个 SQL Server。我们需要一个过程来编写所有服务器级对象的脚本,例如链接服务器、登录名、作业、服务器角色。

我们正在寻找一种工具来编写所有服务器对象的脚本,或者至少列出所有服务器对象。

任何建议将不胜感激。

sql-server upgrade

-2
推荐指数
1
解决办法
373
查看次数

sql 语句“DELETE FROM sales”会做什么?

DELETE FROM sales;
Run Code Online (Sandbox Code Playgroud)

并且如果sales表上没有其他未提交的事务。关于该DELETE陈述,哪项陈述是正确的?

  1. 它删除表中的所有行并且删除的行不能回滚

  2. 它删除所有行以及表的结构

  3. 如果表有主键,它不会删除行

  4. 它删除表中的所有行并且可以回滚删除的行

当然,正确答案在1到4之间。我不知道删除的数据是否可以回滚。

如果有人知道,请帮助我。谢谢。

delete rollback

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

我如何在 postgreSQL 中将 bigint 转换为 int

我想在 bigint 类型的列之一中找出负值。所以当我选择 *from tablename where columname(bigint) <0 ...它给我一个错误。

SQL Error [42883]: ERROR: operator does not exist: bigint[] < integer
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  Position: 60
  ERROR: operator does not exist: bigint[] < integer
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  Position: 60
Run Code Online (Sandbox Code Playgroud)

表定义为:

CREATE TABLE oper.asset_input_event 
(
  id                   bigserial NOT NULL,
  trip_ids             bigint[],
  cassandra_uuid …
Run Code Online (Sandbox Code Playgroud)

postgresql

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