database - 插入从另一行复制值,但不是所有值
问题描述
我有一个project_data
包含项目数据的表。它有一个project_id
引用该表的列projects
。
我想实现一个将项目复制到新项目中的功能。为此,我需要将project_data
with的所有条目复制project_id
到新行中。但是,project_id
新行的字段应该与原始复制行不同,因为它们必须引用新的project_id
.
例子:
ID | 项目编号 | 随机字段 | 随机字段2 |
---|---|---|---|
1 | 12 | 一个 | B1 |
2 | 25 | D | E2 |
复制 id = 12 的项目后,表格变为:
ID | 项目编号 | 随机字段 | 随机字段2 |
---|---|---|---|
1 | 12 | 一个 | B1 |
2 | 25 | D | E2 |
3 | 30 | 一个 | B1 |
怎么做?
编辑:我试过
INSERT INTO project_data (random_field, ramdom_field2)
SELECT random_field, ramdom_field2 from project_data
但我不知道下一步该做什么。
解决方案
尝试这个:
BEGIN;
INSERT INTO project_data (project_id, random_field, random_field2)
SELECT 30, random_field, random_field2 from project_data
WHERE project_id = 12;
然后,如果那是你想要的,COMMIT;
否则ROLLBACK;
推荐阅读
- c# - 如何从包含以“\ u”开头的Unicode转义序列的字符串中获取字符
- java - PIT Coverage generator Minion 由于 UNKNOWN_ERROR 异常退出(pitest build failure)
- python - 为什么 xpath 不更新从基于 DOM 的对象中检索到的值
- asp.net-mvc - 如何使用 ASP.Net MVC 在本月的第一周中包含上周的上个月
- python - 如何递归绘制给定点集的质心?
- angular - 如何更改 zoho 消息图标在特定路线上的位置?
- java - 获取 o.apache.coyote.http11.Http11Processor","message":"解析 HTTP 请求标头时出错","stack_trace":"java.io.EOFException
- javascript - 如何消除 Alan AI 项目中的错误?
- c++ - 如何检查字符串中是否有 2 个子字符串?
- php - Laravel UPDATE 查询具有多个 where 条件不起作用