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 的优雅解决方案?提前致谢...
我想连续存储多个日期。每行都有一个唯一的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?
我正在尝试将 .mdf 文件附加到我的 SSMS 安装中。我完成了这些步骤,最后我收到了这条消息。
是什么导致 .mdf 文件无法附加?
另外,我已经验证 .mdf 文件不是只读的。
编辑
如果我运行,Select @@Version我会得到我有 2008 年的输出,这是我的 .mdf 文件所需要的..
关于 SQL 的一般问题:
如果两个用户执行同一个sql语句,有没有可能user1和user2得到不同的结果?
想象一下 user1 比 user2 拥有更多的权限。
换句话说:user1 有可能收到 100 行,而 user2 只收到 80 行吗?
我的问题是关于 SQL 标准。
但是可以在评论中随意谈论特定数据库系统的实现。
索引如何加速表中的插入?
我知道检索行和数据选择是如何发生的,但它如何帮助插入?
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) 我们需要快速迁移多个 SQL Server。我们需要一个过程来编写所有服务器级对象的脚本,例如链接服务器、登录名、作业、服务器角色。
我们正在寻找一种工具来编写所有服务器对象的脚本,或者至少列出所有服务器对象。
任何建议将不胜感激。
DELETE FROM sales;
Run Code Online (Sandbox Code Playgroud)
并且如果sales表上没有其他未提交的事务。关于该DELETE陈述,哪项陈述是正确的?
它删除表中的所有行并且删除的行不能回滚
它删除所有行以及表的结构
如果表有主键,它不会删除行
它删除表中的所有行并且可以回滚删除的行
当然,正确答案在1到4之间。我不知道删除的数据是否可以回滚。
如果有人知道,请帮助我。谢谢。
我想在 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) oracle ×3
sql-server ×2
ddl ×1
delete ×1
index ×1
index-tuning ×1
mysql ×1
permissions ×1
postgresql ×1
rollback ×1
sql-standard ×1
upgrade ×1