Sql 更新具有依赖项的行

Sql 更新具有依赖项的行,sql,postgresql,Sql,Postgresql,我们有两个表,分别是patron和cir_transaction 在该用户表中,一个名为“用户id主键”的列我只是用其他名称更新用户id的数据, 现在我必须写一个查询到 update patron set patron_id=" " where patron_id="" like.... **original query**:(update patron set patron_id='" + patronIdTrim + "' where patron_id='" + patronId + "'

我们有两个表,分别是patron和cir_transaction

在该用户表中,一个名为“用户id主键”的列我只是用其他名称更新用户id的数据, 现在我必须写一个查询到

update patron set patron_id=" " where patron_id="" like....
**original query**:(update patron set patron_id='" + patronIdTrim + "' where patron_id='" + patronId + "' and library_id=" + SimpleUtility.getLibraryId()));
但在执行过程中,它显示了

更新或删除表用户违反表cir_事务上的外键约束fk_111

我也尝试首先更新cir_事务表中的特定用户id,如:

 update cir_transaction set patron_id='" + patronIdTrim + "' where patron_id='" + patronId + "' and library_id=" + SimpleUtility.getLibraryId());
它显示的错误如下:

插入或更新表cir_事务违反外键约束fk_111

现在告诉我如何更新这两个表中的那些行的用户id?
仍然有人不明白我的问题,请问我,我会详细告诉你。

正如另一位用户所评论的,你必须使用更新级联来同时更新所有引用的表

下面是如何创建表结构的示例:

--main table
CREATE TABLE script_cadastro
(
    cd_sequencia integer NOT NULL DEFAULT 0,
    nr_atividade integer NOT NULL DEFAULT 0,
    nm_script character varying(100) NOT NULL DEFAULT ''::character varying,
    nr_versao character varying(10) NOT NULL DEFAULT ''::character varying,
    observacao character varying(1000) NOT NULL DEFAULT ''::character varying,
    script_conteudo character varying(5000) NOT NULL DEFAULT ''::character   varying, 
    dt_cad date NOT NULL DEFAULT '1900-01-01'::date,
    hr_cad time without time zone NOT NULL DEFAULT '00:00:00'::time without time zone,
    CONSTRAINT script_cadastro_pk PRIMARY KEY (cd_sequencia)
);

--table with foreign key
CREATE TABLE script_cadastro_itens
(
   cd_sequencia  INTEGER NOT NULL DEFAULT 0                      ,
   versao_script VARCHAR(200) NOT NULL DEFAULT ''                ,
   usuario       INTEGER NOT NULL DEFAULT 0                      ,
   dt_cad        DATE NOT NULL DEFAULT '1900-01-01'              ,
   hr_cad        TIME NOT NULL DEFAULT '00:00:00'                ,
   CONSTRAINT script_cadastro_itens_pk PRIMARY KEY (cd_sequencia),
   CONSTRAINT script_cadastro_itens_fk FOREIGN KEY (cd_sequencia) REFERENCES    script_cadastro (cd_sequencia) 
   ON UPDATE CASCADE 
   ON DELETE RESTRICT
 );
在我看来。。。应该在主键中移动很少。进行更新,修改其价值,这不是你认为的一个好做法,因此我工作的公司的系统,我们不会简单地以这种方式更新


我希望我帮助了你

在更新级联外键时使用。有关详细信息,请参阅Google和堆栈溢出搜索。将主键设置为单个空格的想法似乎有点奇怪。