Sql 更新具有依赖项的行
我们有两个表,分别是patron和cir_transaction 在该用户表中,一个名为“用户id主键”的列我只是用其他名称更新用户id的数据, 现在我必须写一个查询到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 + "'
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和堆栈溢出搜索。将主键设置为单个空格的想法似乎有点奇怪。