批量插入/更新同时

时间:2011-11-24 18:45:44

标签: sql

  1. 假设在数据库中我有1000条用户记录,他的朋友,timeStampOfChat(即这是专栏)
  2. 现在对于用户(假设子目录),我们有30个好友名称及其时间戳值。 [所以仍然有970个其他用户及其朋友的记录。]
  3. 现在我想更新一个新的数据集,其中用户子目录中有50条记录,其中很少是新记录,很少是旧记录。 (对于新的,它应该插入整个,对于旧的它应该更新时间戳。)
  4. 我想使用批量更新/插入。
  5. 现在这就是我想写的逻辑

    if data base has user subrata then batch update time stamp where user = subrata
    

    有了这个,我将更新现有记录,但如何从该50条记录中插入新记录。

1 个答案:

答案 0 :(得分:0)

您没有使用RDBMS标记此问题,但在MySQL中执行此操作的正确方法是INSERT INTO...ON DUPLICATE KEY UPDATE查询。

只要您定义了适当的索引,当表中已包含您要插入的行时,它将更新时间而不是插入副本。

INSERT INTO table (user, hisfriend, timeStampOfChat) VALUES (1, 2, 3) 
    ON DUPLICATE KEY UPDATE timeStampOfChat = VALUES(timeStampOfChat)