sql - 当其中一个值参数是动态的时,是否可以执行多个插入?

标签 sql postgresql

考虑以下 Postgresql 数据库表:

id    | book_id |  author_id
----------------------------
 1    |  17     | 10
 2    |  18     | 10
 3    |  19     | 10
 4    |  22     | 10

我想在 book_id 的表中插入新的 author_id 值,其中 author_id=10。例如,生成的表格将类似于以下内容...

id    | book_id |  author_id
----------------------------
 1    |  17     | 10
 2    |  18     | 10
 3    |  19     | 10
 4    |  22     | 10
 5    |  17     | 11
 6    |  18     | 11
 7    |  19     | 11
 8    |  22     | 11     

如果不为每个 book_id 编写单独的插入语句,是否可以编写一个模拟相同行为的插入语句?

最佳答案

试试这个

Insert into table(book_id,author_id)
(
    Select table.book_id,11 FROM table
    Where author_id=10
)

关于sql - 当其中一个值参数是动态的时,是否可以执行多个插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687281/

相关文章:

mysql - 为特定的人选择最多 "popular"关注者。某人拥有的追随者越多,他们的 "popular"就越多

java - Postgresql、JDBC 和流式处理 BLOB

postgresql - 如何使用 “execute ‘delete from table1' 获得结果“

sql - plpgsql 函数。如何将值与一组值进行比较?

performance - 在 PostgreSQL 上首次加载时查询运行速度非常慢

mysql - Select * from table where id=(很多不同的值)...如何编写可以执行此功能的查询?

php - MD5 哈希值不匹配

postgresql - 查找每个国家/地区的最小值和最大值

mysql - 自动填充时间维度表

python - Sqlite3 - 使用 Python 代码更新表 - %s 附近的语法错误