我在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也在博客中。
写作程序可能正确吗?如果它如何写这个程序? 请告诉我一些想法。请帮助我。如果能做到这一点会很棒。谢谢。
答案 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)