请帮我解决此问题。
表t1有“t1c1”和“t1c2”列。
表t2有“t2c2”和“t2c2”列。
我必须在t3表中插入值为“t3c1”,“t3c2”,t3c3“列。
条件是“t3c2”列值应填入“t1c2”列,“t3c3”列应填充“t2c2”列,“t3c1”应填充光标值。
有人可以帮忙吗?这可能吗?
答案 0 :(得分:2)
这应该有效:
INSERT INTO t3 (t3c1, t3c2, t3c3)
SELECT currval, t1.t1c2, t2.t2c2
FROM t1, t2;
如果您只需匹配t1
和t2
中的某些行,则可以添加:
WHERE t1.t1c1 = 'value'
AND t2.t2c1 = 'value';
答案 1 :(得分:0)
insert into t3(t3c1,t3c2,t3c3)
(select curval,t1.t1c2,t2.t2c2 from t1 left outer join t2 on t1.col=t2.col)
答案 2 :(得分:0)
如果我理解你的问题,我现在不行。 可能是SQL中的一些代码会比其他desctiption更好。如果我不明白你有这个观点
CREATE VIEW t3 as SELECT t1c2 AS t3c2, t2c2 AS t3c3, rowid (oid ... or something) AS t3c1 FROM t1,t2 WHERE ....
然后你可以制作一个triger INSTEAD OF
CREATE TRIGGER t3_insert INSTEAD OF INSERT ON t3 AS BEGIN
INSERT t1 .... VALUES (NEW.t3c1 .....)
.......
END;
或者如果t3是常规表,并且您想在t3中修改数据,则使用触发器AFTER INSERT (UPDATE,DELETE)
更具体地说,您可以获得更好的解决方案。