Stored procedures 在数据库中使用序列时,如何确保线程安全?

Stored procedures 在数据库中使用序列时,如何确保线程安全?,stored-procedures,informix,Stored Procedures,Informix,我在一个存储过程中使用了一个序列来更新多个表,如下所示: create procedure() -- retrieve new sequence number sequence.nextval(); -- update table_A using newly created sequence number insert into table_A(theID) values(sequence.currval()); -- update table_B using

我在一个存储过程中使用了一个序列来更新多个表,如下所示:

create procedure()
   -- retrieve new sequence number
   sequence.nextval();

   -- update table_A using newly created sequence number
   insert into table_A(theID) values(sequence.currval());

   -- update table_B using newly created sequence number
   insert into table_B(theID) values(sequence.currval());
end procedure;

我可以知道上面的代码是否是线程安全的实现吗?对于每个过程的执行,我能保证表A和表B中的ID在一次有多个执行时总是检索相同的序列号吗?

Informix的主要目标之一是确保过程完全按照您的需要工作,不管有多少用户同时也在运行相同的过程。实际上,您可以拥有自己的多个并发会话,每个会话都运行该过程,并且每个会话都与所有其他会话隔离


因此,显示的代码是“线程安全的”。

Informix的主要目标之一是确保过程完全按照您的需要工作,而不管有多少用户同时运行同一过程。实际上,您可以拥有自己的多个并发会话,每个会话都运行该过程,并且每个会话都与所有其他会话隔离


因此,显示的代码是“线程安全的”。

非常感谢您的回复,我可以知道这也适用于触发器吗?如果这是真的,那么我可以省去很多努力是的,同样适用于触发器。非常感谢您的回复,我可以知道这也适用于触发器吗?如果这是真的,那么我可以省去很多努力是的,触发器内部也是如此。