This topic has been archived. It cannot be replied.
-
工作学习 / IT技术讨论 / 有没有INSERT 和UPDATE 一起使用的SQL 语句.如果记录某个KEY VALUE 存在表里那么就UPDATE ,否则就INSERT.
-bobo123(bobo);
2004-11-14
(#1981025@0)
-
While exists Blabla...
Begin.....update....End
while not exsites Blabla
Begin.......insert ....End
-forcs(成不了龙);
2004-11-14
(#1981037@0)
-
还得写两条SQL 语句.麻烦!
-bobo123(bobo);
2004-11-14
(#1981040@0)
-
这就嫌麻烦了。
-guestagain(guest again);
2004-11-14
(#1981050@0)
-
要考虑到执行的效率.有一千条记录存在内存里,每次取出一条,判断该条记录的KEY 是否存在表里 .如果存在 执行UPDATE 否则 INSERT.这样每条记录要访问两次表,我不清楚有什么更好的办法.
-bobo123(bobo);
2004-11-14
(#1981055@0)
-
这个方法会好一点点T-SQL:
UPDATE aTable SET aField = newValue WHERE aKey = keyValue
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO aTable (...) VALUES (...)
END
-bluebison(不是很牛);
2004-11-14
{140}
(#1981440@0)
-
这个和"还得写两条SQL 语句.麻烦!"有什么关系?
-guestagain(guest again);
2004-11-15
(#1982136@0)
-
what kind of database are u using?
-changshan(偷偷乐);
2004-11-15
{1017}
(#1982888@0)
-
oracle9i upsert
-whatwhenwherewhy(一生何求);
2004-11-15
(#1983060@0)
-
oracle 9i merge
-tester(test);
2004-11-15
(#1983077@0)
-
If using DB2 you can do "INSERT_UPDATE INTO...."
-schen(睹往睹来);
2004-11-16
(#1984312@0)
-
if DB2, use MERGE
-shanxiren(我老爸是山西人,我是);
2004-11-17
(#1985592@0)
-
这种需求是如何产生的呢?
-pleased(please);
2004-11-16
(#1985034@0)
-
比如买了新的股票那么是INSERT, 如果把手中现有的股票抛出去一部分,那么是update我只在程序开始运行和要程序运行结束的时候才和数据库打交道的.
-bobo123(bobo);
2004-11-16
{59}
(#1985073@0)
-
如果你真是这个需求, 那没问题.程序开始时, 把持有的股票调入内存, 结束时, 对于卖出的, 无疑是UPDATE, 对于买入的, 只需和内存中有限的记录比较,然后决定用UPDATE或者INSERT.
-zhiyin(zhiyin);
2004-11-17
(#1985649@0)
-
如果这样你要check的应该是buy/sell. 如果是buy, 就应该是insert, 不要check database; 如果是sell, check 是不是有足够的share to sell奇怪,股票交易里怎么可能作update呢, database里的数据只能insert, 不能有update 和 delete的啊
-zxcvb(朝天椒);
2004-11-17
{90}
(#1986256@0)