当前位置:  开发笔记 > 后端 > 正文

在mysql中嵌套插入以进行标记

如何解决《在mysql中嵌套插入以进行标记》经验,为你挑选了1个好方法。

我想用一个sql语句在博客帖子中添加一个标签.

说我的表看起来如下:

tags
+-------+-----------+
| tagid | tag       |
+-------+-----------+
|     1 | news      | 
|     2 | top-story | 
+-------+-----------+

tag2post
+----+--------+-------+
| id | postid | tagid |     
+----+--------+-------+
|  0 |    322 |     1 |
+----+--------+-------+

我想解决的问题是插入一个新标签,检索它的id,然后在一个sql语句中将这个新id插入到关系表中.

INSERT INTO tag2post (postid, tagid)
VALUES
(
    332, # the post
    IF (
        (SELECT tagid FROM tags WHERE tag = 'new_tag'),
        (SELECT tagid FROM tags WHERE tag = 'new_tag'),
         # here is where i'd like to insert 
         # the new_tag and return it's id
        'i am lost here'
    )
)

Michael Hare.. 5

您不能将此作为单个插入执行,因为插入是原子的 - 也就是说,在语句完成之前不会确定ID.

在事务中包装两个语句,您将获得您的ID和原子性.



1> Michael Hare..:

您不能将此作为单个插入执行,因为插入是原子的 - 也就是说,在语句完成之前不会确定ID.

在事务中包装两个语句,您将获得您的ID和原子性.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有