0

我想在创建新项目时将项目任务插入表中。我想用触发器来实现这一点,但不知道我是否可以多次使用它们。

这是示例

insert into project_tasks(id,name,name2)
select concat('1',left(project.name,5),left(project.id,30)) as id,
'first task','do this'       
from projects where project_type = '1'
`$`limit 1

这是我的问题。

如果 project type = 2,我想插入一组值,如果project type = 3我想插入另一组值等。

对于某些项目类型,我有六个任务,所以如果我不必做选择来建立关系,我可以做 (1,2,3) (4,5,6) ,(7,8,9)但现在我必须为每个任务做一个插入,所以它会加载所有任务

4

2 回答 2

0

您可以为您尝试解决的每个案例编写一个存储过程,并让触发器决定哪个存储过程适合您的案例。

然而,这是不必要的复杂,并且一旦您获得太多可能的案例/价值组合,就会成为维护的噩梦。就个人而言,我会在应用层解决这种事情。

于 2013-01-04T08:07:37.077 回答
0

您可以使用额外的表格为每个项目定义任务集。例如

project_type - type of project
name1 - predefined string
name2 - predifined string

创建项目后,您可以加载此数据以插入任务表。这允许您更改任务集而不更改应用程序中的基本代码。

我希望你能理解我的主要想法

于 2013-01-04T08:21:15.280 回答