查询更新主键列值
Posted
技术标签:
【中文标题】查询更新主键列值【英文标题】:Query to update primary key column values 【发布时间】:2016-07-15 12:46:27 【问题描述】:我在DB2
中有一个数据库表,其中包含三个primary key
列,并且都是VARCHAR
类型。
现在,这些列值可通过应用程序 UI 中的屏幕进行编辑。我的问题是哪种方法更好,
UPDATE
在WHERE
子句中使用旧主键列值查询
或
DELETE
首先是旧记录(WHERE
子句中的旧主键列值),然后是 INSERT
UI 中的所有数据作为新记录。
在 UI 中,必须提供 Primary Key Column
值(默认情况下 - 旧值),但用户将提供新值是可选的。
【问题讨论】:
无论你采取什么方法,确保你考虑到其他表有外键引用和重复记录。 我同意 Dan Bracuk,但如果您采用解决方案 2,请不要忘记在事务中执行此操作,如果删除工作但不插入您会丢失日期。使用事务,如果出现错误,您可以回滚。注意:对于使用事务,您的表必须已记录 最好使用单列代理键(序列/UUID)而不是复合业务键。当您不必担心更新其他表中的外键时,这将使更新变得更加简单。 【参考方案1】:不要重新发明***。 update
语句可以正常工作。
【讨论】:
谢谢,我最近在两个应用程序中看到方法#2,所以我认为可能出于某种原因这样做,但不幸的是,这些团队中没有人澄清我,所以我在这里问。跨度>以上是关于查询更新主键列值的主要内容,如果未能解决你的问题,请参考以下文章