Postgresql 博士后是否;选择“更新”选项;是否限制创建新的外键引用?
有两个表,一个被另一个具有外键约束的表引用Postgresql 博士后是否;选择“更新”选项;是否限制创建新的外键引用?,postgresql,locking,Postgresql,Locking,有两个表,一个被另一个具有外键约束的表引用 CREATE TABLE record ( id UUID PRIMARY KEY NOT NULL ); CREATE TABLE task ( id UUID PRIMARY KEY NOT NULL, record_id UUID, CONSTRAINT fk_task_record_id FOREIGN KEY (record_
CREATE TABLE record
(
id UUID PRIMARY KEY NOT NULL
);
CREATE TABLE task
(
id UUID PRIMARY KEY NOT NULL,
record_id UUID,
CONSTRAINT fk_task_record_id FOREIGN KEY (record_id)
REFERENCES record (id)
);
问题是:如果获得了对记录的锁定
行
SELECT * FROM record where id = 'A' FOR UPDATE OF record
我是否可以在任务
表中创建新的外键,并引用此记录
行
?
Postgres是否阻止在由SELECT FOR UPDATE OF
锁定的表上创建新的外键引用 不,没有
选择。。对于更新,仅阻止对该行的更改(更新、删除)
它不会阻止其他事务读取该行,而这正是插入引用锁定行的行所必需的。除了锁定整个表之外,您能否建议防止创建新引用的方法?
INSERT INTO task VALUES ('someId', 'A');