小编Dav*_*dge的帖子

SQL中的TRUNCATE和DELETE有什么区别

我在响应写了一个回答这个问题的错误到一个问题有关的区别TRUNCATEDELETE,但我认为这是一个耻辱不共享,所以我会后我自己的答案,以我自己的问题...的是,即使道德?:)

编辑:如果您的答案是平台特定的,请指出.

sql database truncate

263
推荐指数
12
解决办法
41万
查看次数

散列连接和合并连接(Oracle RDBMS)之间有什么区别?

散列连接和合并连接之间的性能增益/损失是什么,特别是在Oracle RDBMS中?

sql oracle performance join

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

在Oracle Query中生成每行中的随机数

我想选择一个表的所有行,后跟一个介于1到9之间的随机数:

select t.*, (select dbms_random.value(1,9) num from dual) as RandomNumber
from myTable t
Run Code Online (Sandbox Code Playgroud)

但是随机数在行与行之间是相同的,仅与查询的每次运行不同.如何在同一执行中使行数不同?

sql oracle

28
推荐指数
4
解决办法
12万
查看次数

ORA-04082:表级触发器中不允许使用新引用或旧引用

我有一个名为per的表.在每个表中,我有一个名为"fl1"的字段和另一个名为"fl2"的字段.更新记录时,我想检查"fl1"的值是否已更改".如果值已更改,请使用"fl1"中的新值更新"fl2"列.

我想出了这个触发器

CREATE OR REPLACE TRIGGER Flag
AFTER INSERT OR UPDATE on per
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
  If :New.fl1 != :Old.fl1 Then
        :New.fl2:= :new.fl1;
  End If;
END;
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到"ORA-04082:表级触发器中不允许新的或旧的引用"

我正在考虑的另一个选项(不确定它是否有效),只是用"fl1"的值更新"fl2"的值,无论"fl1"的值是否已经改变.

UPDATE

添加了"For Each Row"并更改了"在INSERT或UPDATE之后更新"为"BEFORE INSERT OR UPDATE".它正在发挥作用.

CREATE OR REPLACE TRIGGER Flag
BEFORE INSERT OR UPDATE on per
REFERENCING NEW AS NEW OLD AS OLD

FOR EACH ROW
BEGIN
If :New.fl1 != :Old.fl1 Then
   :New.fl2:= :new.fl1;
End If;
END;
Run Code Online (Sandbox Code Playgroud)

oracle triggers

23
推荐指数
2
解决办法
5万
查看次数

拥有多个指数有哪些缺点?

我最近通过给SQLite一个很好的索引来加速一个复杂的查询.这样的结果让我想知道是否应该索引常用于JOIN或ORDER BY子句的许多其他字段.但是我不想过度热心并让它适得其反:我认为必须有一些理由创建索引,或者默认情况下每个字段都会被编入索引.

我在这种情况下使用SQLite,但当然也欢迎DBMS不可知的建议.

sql database sqlite indexing rdbms-agnostic

17
推荐指数
4
解决办法
2万
查看次数

在没有LIKE的情况下检查Oracle中字符串中的子字符串

如何在不使用LIKE的情况下检查Oracle中字符串中的子字符串?假设我要从表中选择姓氏中包含字母"z"的所有用户:

SELECT * FROM users WHERE last_name LIKE "%z%";
Run Code Online (Sandbox Code Playgroud)

这会有效,但我不想使用LIKE.我可以使用其他功能吗?

sql oracle

15
推荐指数
3
解决办法
10万
查看次数

根据Rails中的最后一个has_many记录进行排序

我有一个Student模型和一个Gpa模型.Studenthas_many Gpa.我如何根据最近创建的gpa记录value属性对学生进行排序?

注意:我不想根据创建的日期对单个学生的GPA进行排序.我想拉动所有学生并根据他们最近的GPA记录对他们进行排序

class Student < ActiveRecord::Base
  has_many :gpas
end

@students = Student.order(...)
Run Code Online (Sandbox Code Playgroud)

ruby mysql ruby-on-rails

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

如何将任意参数发送到Oracle触发器?

目的是向Web应用程序中的当前用户ID等触发器发送额外信息.由于使用了连接池,并且所有连接都使用相同的用户ID,如何将原始Web用户ID传递给触发器?这需要在不触及应用程序代码的情况下实现.它是一个基于Java的应用程序.

约翰

java oracle plsql jdbc

13
推荐指数
3
解决办法
7746
查看次数

转换整个输入字符串之前,Oracle日期格式图片结束

我的表有两个DATE格式属性,但是,当我尝试插入值时,它会抛出一个错误:日期格式图片在转换整个输入字符串之前结束. 这是我尝试过的代码:

insert into visit
values(123456, '19-JUN-13', '13-AUG-13 12:56 A.M.');
Run Code Online (Sandbox Code Playgroud)

我认为问题在于,12:56但Oracle文档说明date了日期和时间.

oracle time date

13
推荐指数
3
解决办法
17万
查看次数

Oracle:max(id)+1和sequence.nextval之间的区别

我正在使用Oracle

创建ID使用max(id)+1和使用sequance.nexval,使用何时以及何时使用有什么区别?

喜欢:

insert into student (id,name) values (select max(id)+1 from student, 'abc');
Run Code Online (Sandbox Code Playgroud)

insert into student (id,name) values (SQ_STUDENT.nextval, 'abc');
Run Code Online (Sandbox Code Playgroud)

SQ_STUDENT.nextval 有时给出重复记录的错误...

请帮我解决这个疑问

oracle sequence

13
推荐指数
2
解决办法
2万
查看次数