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

这是我的解决方案设计:


将值插入来自test1的qa_post(位于database1中)表中
(数据库2)
max(postid)获取database1.qa_posts
刚插入步骤1),然后
qa_postmetas中插入值
(位于database1中),但是一半的值来自database2.test1


到目前为止,这是我的脚本:

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之前不插入database2.test1的逻辑。如果存在,则不进行任何插入

最佳答案

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

test1.URL上创建UNIQUE索引;则INSERT将失败。进行INSERT IGNORE,以使故障消失。

关于mysql - MySQL查询获取最后一个ID,如果不存在则插入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28778731/

10-11 03:16