【发布时间】:2016-11-01 06:45:21
【问题描述】:
我在 MySQL 中有一个多对多连接,将角色链接到任务(三个表:角色、任务和角色任务)。每个角色和任务都属于一个项目。
Roles Table
id | project_id | role
---|------------|-------------
1 | 1 | Supervisor
2 | 1 | Manager
Tasks Table
id | project_id | task
---|------------|-------------
1 | 1 | Do this
2 | 1 | Do that
role_task Table
role_id | task_id
-----------------
1 | 1
1 | 2
2 | 1
我正在寻找一种纯 SQL 方法来将角色、任务及其关联的多对多连接从一个项目复制到另一个项目。我想完成的是:
Roles Table
id | project_id | role
---|------------|-------------
1 | 1 | Supervisor
2 | 1 | Manager
3 | 2 | Supervisor
4 | 2 | Manager
Tasks Table
id | project_id | task
---|------------|-------------
1 | 1 | Do this
2 | 1 | Do that
3 | 2 | Do this
4 | 2 | Do that
role_task Table
role_id | task_id
--------|--------
1 | 1
1 | 2
2 | 1
3 | 3
3 | 4
4 | 3
我可以毫无问题地复制/复制角色表和任务表中的数据。但是,如何使用新的角色 ID 和任务 ID 复制 role_task 表?我可以在 PHP 中使用循环并获取插入的 id,但更喜欢纯 SQL 解决方案。谢谢
【问题讨论】:
-
你有 3 个表,即 Roles、Tasks 和 role_task?
-
我不明白您期望从数据库中得到的确切结果是什么。
标签: php mysql sql stored-procedures many-to-many