Mysql将数据插入多个表中

时间:2014-05-27 06:51:53

标签: mysql mysql-workbench mysql-error-1064

我在MYSQL插入时遇到问题。 任何专家都可以回答这个问题。

以下是我的问题。

照片桌:

pid - PK,
photo_src,
photo_size,
created ,

Photo_link表: - 用于链接Blog表中的多个图像。

id ,
pid -FK

博客表:

bid - PK,
content,
created,
id - will have photo_link table id .

照片:

| pid | photo_src    | photo_size | created             |
+-----+--------------+------------+---------------------+
|   1 | /photo/1.jpg |        400 | 2014-05-27 11:58:45 |
|   2 | /photo/2.jpg |        400 | 2014-05-27 11:58:54 |
|   3 | /photo/3.jpg |        400 | 2014-05-27 11:59:07 |
|   4 | /photo/4.jpg |        400 | 2014-05-27 11:59:14 |
+-----+--------------+------------+---------------------+

Photo_link:

 +------+------+
 | plid | pid  |
 +------+------+
 |  100 |    1 |
 |  100 |    2 |
 |  100 |    3 |
 |  101 |    2 |
 |  101 |    4 |
 +------+------+

博客表:

+-----+------------------------+---------------------+------+
| bid | content                | created             | pid  |
+-----+------------------------+---------------------+------+
|   1 | This is my first Blog  | 2014-05-27 12:04:44 |  100 |
|   2 | This is my second Blog | 2014-05-27 12:05:01 |  101 |
+-----+------------------------+---------------------+------+

现在我必须在Blog中插入多张照片,所以首先我必须将新博客的照片插入到照片表中,然后再次将所有创建的照片ID(pid)插入一个id下的photo_link表中(对于每个博客为photo_link表创建一个新的id以保存与该博客相对应的所有照片)并在博客表中插入该id。

我的问题是我如何获得所有新创建的照片ID,然后插入到photo_link第一次我必须为新博客创建新的ID,然后必须保存所有相应的照片与该ID然后插入该photo_link id也在博客中。

写作程序可能正确吗?如果它如何写这个程序?

请告诉我一些想法。

请帮助我。如果能做到这一点会很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

每次插入新创建的照片后,您需要SELECT SCOPE_IDENTITY才能获得插入照片的ID。

然后你可以根据你得到的身份继续你的流程。

示例:

DECLARE @insertedId
INSERT INTO Photo(photo_src, photo_size, created) VALUES('/photo/1.jpg', 400, GETDATE())

SELECT @insertedId = SCOPE_IDENTITY()

INSERT INTO Photo_link(content, created, pid) VALUES('This is my first Blog', GETDATE(), @insertedId)