假设我有SQL填补列
- 表
first_table
它有一个FK表second_table
- 其中有一个名为
name_field
列现在表second_table
,我想要在名为name_field
的first_table
中添加一列,并将其填入关联的second_table
。
我应该如何填充纯粹使用SQL的值?
(这是Oracle,如果该事项)
假设我有SQL填补列
first_table
它有一个FK表second_table
name_field
列现在表second_table
,我想要在名为name_field
的first_table
中添加一列,并将其填入关联的second_table
。
我应该如何填充纯粹使用SQL的值?
(这是Oracle,如果该事项)
您可以在FK表的触发器这么automaticaly做:
UPDATE table1
SET <field> = (select <field> from inserted where id=table1.id)
-1因为触发器是魔鬼的工作。它们使系统维护和调试更加困难。 – 2009-11-09 10:39:00
如果你知道这个字段只是由触发器更新,我找不到问题。触发器对某些任务是有利的,对其他人来说是不错的,是你选择使用它还是不使用魔鬼的工作;) – 2009-11-09 12:29:55
update (select first_table.name_field nf1,
second_table.name_field nf2
from first_table,
second_table
where ... (join condition) ...
)
set nf1 = nf2
潜在的有2项不同的任务: 1 )初始化新列中的值 我认为下面的语法是最通用的 UPDATE table1 SET <field> = (select <field> from table2 where id=table1.id)
2)基于j的方法在2个表中的2列之间同步值.a.estevan
我会建议使用视图而不是改变数据库模式(除非有充分的理由)。 – Kane 2009-11-09 07:16:12
感谢您的建议,但我知道我想要做什么。 – RichN 2009-11-09 07:19:20