mysql查询获取最后一个id并插入值(如果不存在)

时间:2015-02-28 06:04:34

标签: mysql

我在MySQL脚本中努力寻找需要帮助的解决方案:

这是我的解决方案设计:

  1. 在test1中的qa_post(在database1中)表中插入值 (database2)
  2. max(postid)获取database1.qa_posts(我们 刚插入步骤#1)然后
  3. qa_postmetas中插入值 (在database1中),但有一半的值来自database2.test1
  4. 到目前为止,这是我的脚本:

    INSERT INTO database1.qa_posts (type, categoryid, userid, created, title, content, tags)
    (SELECT  'Q_QUEUED', '1', '3', NOW(), f.title, f.img, f.tagsv
    FROM database2.test1 f)
    LIMIT 1;
    
    INSERT INTO database1.qa_postmetas (postid, title, content) 
    (select MAX(postid) , 'qa_q_extra', f.URL
    from database1.qa_posts b
    JOIN database2.test1 f on f.id = b.postid)
    LIMIT 1 ;
    

    出了什么问题:

    • MAX(postid)来自database2.test1而不是database1.qa_posts
    • 我想添加不会在database1.qa_posts中插入的逻辑,直到我验证f.URL中{{}}}不存在为止。如果确实存在,请不要插入

1 个答案:

答案 0 :(得分:0)

MAX(postid) - > MAX(b.postid)

test1.URL上创建一个独特的索引;然后INSERT将失败。执行INSERT IGNORE以使失败保持沉默。