sql - UPDATE statement in an inheritance based table -
i've got table that's meant used modeling inheritance relationship. it's column oriented have columns properties , looks like:
mainid, subid, prop1, prop2, etc.
all rows same mainid related , row subid=0 parent row matches mainid , subid > 0. thus:
100, 0, 'abc', 123 100, 1, null, 456
means (100,1)
child of (100,0)
, querying prop1
(100,1)
should give me 'abc'
, querying prop2
(100,1)
should give me 456
.
this seems work ok however, when want update (100,1).prop1
, i'd make field null
if update value 'abc'
(matches parent.prop1 field). there simple update query can this? realize can on multiple queries 1 update query , updating many fields @ once, if possible (eg update (100,1).prop1='abc', (100,1).prop2=789, etc.)
this should work standard sql (eg not specific particular sql engine)
use case expression , dependent subquery, part of standard ansii sql , supported databases.:
update table t1 set prop1 = case when exists ( select * table t2 t1.mainid = t2.mainid , t2.subid = t1.subid - 1 , t2.prop1 = 'abc' ) null else 'abc' end t1.mainid = 100 , t1.subid = 1
Comments
Post a Comment