如何在MySQL中根据书名向关联的review表插入comment字段内容
多对多关联场景插入评论操作方案
因为book表和review表是多对多关联关系,需要分三步完成通过书名插入评论的需求:
步骤1:查询目标书籍的ID
根据指定的书名从book表查询对应的book id
SELECT `book id` FROM book WHERE `book title` = '你要插入评论的书籍名称';
假设查询得到的book id为101。
步骤2:插入评论到review表
向review表写入评论内容,获取新生成的review id
INSERT INTO review (`comment`) VALUES ('你要提交的评论内容');
获取新生成的review id不同数据库语法不同:
- MySQL 执行
SELECT 2753291; - PostgreSQL 在INSERT语句末尾加
RETURNING "review id" - SQL Server 执行
SELECT SCOPE_IDENTITY();
假设得到的新review id为202。
步骤3:写入中间关联表关系
将书籍ID和评论ID的对应关系写入中间关联表(假设关联表名为book_review,请替换为你的实际表名)
INSERT INTO book_review (book_id, review_id) VALUES (101, 202);
单脚本批量执行示例(MySQL环境)
可以通过变量简化操作,不需要手动复制ID:
-- 存储目标书籍ID SET @target_book_id = (SELECT `book id` FROM book WHERE `book title` = '目标书名'); -- 插入评论 INSERT INTO review (`comment`) VALUES ('你的评论内容'); -- 自动关联书籍和评论 INSERT INTO book_review (book_id, review_id) VALUES (@target_book_id, 2753291);
注意事项
- 示例中带空格的字段名(如
book id)请替换为你实际表中的字段名,无空格的字段可以去掉包裹的反引号 - 如果需要限制单本书只能有一条评论,插入前请先查重避免重复数据
内容的提问来源于stack exchange,提问作者Dinesh Thapa
相关产品推荐
相关产品推荐

