Sql 具有外键约束的表的锁定顺序?

Sql 具有外键约束的表的锁定顺序?,sql,h2,hsqldb,Sql,H2,Hsqldb,如果我创建一个模式,如以下所示: create table org ( org_id bigint not null auto_increment, name varchar(255) not null, primary key(org_id) ); create table user ( user_id bigint not null auto_increment, name varchar(255) not null, org

如果我创建一个模式,如以下所示:

create table org 
( 
    org_id bigint not null auto_increment, 
    name varchar(255) not null, 
    primary key(org_id)
);

create table user 
( 
    user_id bigint not null auto_increment, 
    name varchar(255) not null, 
    org_id bigint not null, 

    primary key(user_id), 
    foreign key(org_id) references org (org_id)
);
其中,组织表有一个条目:

insert into org (name) values ('org 1');
如果运行以下sql语句:

insert into user (name, org_id) values ('user 1', 1);

表将按什么顺序锁定?它是确定性的吗?如果对另一个表有第二个外键约束,该怎么办?

我认为只有一个表会被锁定,以便插入到给定的表中(假设该表没有触发器)。执行插入时,通常会在插入到的表上放置排他记录级锁。将在具有外键关系的表上放置共享锁,即插入到的表的主表