2016-09-01 27 views
0

什么是SQL中的自动化过程?我在接受采访时被问及他们,我对他们不熟悉。它们会与触发器相似吗?自动化程序SQL

+2

我会认为他们在谈论调度执行过程的任务 – Lamak

+1

任何特定的RDBMS? – Barranka

+0

究竟是什么问题? – Hogan

回答

0

如果您在一般意义上谈论的自动化程序,你在谈论在没有用户交互的情况下执行的任务列表。在数据库上下文中,自动化过程是一个自动执行的指令列表,无需您一个接一个地写入它们。

现在,让我们具体(我使用MySQL的,所以我会用它命名):

一个存储过程是被作为一个单元的单个调用执行的指令列表。一个例子是:

delimiter $$ 
create procedure HelloWorld() 
begin 
    select 'Hello world'; 
end $$ 
delimiter ; 

上述过程可以用一条指令被称为:

call HelloWorld(); 
+-------------+ 
| Hello World | 
+-------------+ 
| Hello World | 
+-------------+ 

这是很简单的,但你可以做这种事情与存储过程。例如:

delimiter $$ 
create procedure CloseTheDay(d date) 
begin 
    declare debits, credits decimal(18,6); 
    select sum(debit), sum(credit) 
    into debits, credits 
    from tranasctions as t 
    where t.date < date_add(d, interval +1 day); 

    select 'Total', debits, credits; 
end $$ 
delimiter ; 

您可以控制流语句,你可以用hanlde光标数据,可以插入或删除数据......你几乎可以做一个存储过程什么。从这个意义上讲,这是一个自动化程序。

如果你想补充的是,用户不需要,甚至调用程序的要求,可以从

  • 触发称呼它,是火灾,当你插入或删除数据
  • 的事件调度,在那里你可以在此日期和时间设置将程序将调用

希望这有助于