2013-01-04 189 views
0

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

这里是例子

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)但现在我必须为每个任务做一个插入,所以它会加载所有任务

+1

阅读第7次,对我仍然没有意义。 – AndreKR

+0

好吧。我有项目和项目任务。如果项目类型=写代码,则需要创建5个项目任务。任务1 - “获取信息” - 任务2 - “启动代码” - 当项目typr =创建需要创建网站任务时任务1 - “获取服务器详细信息”任务2 - “确保所有应用程序已加载” - 等。 等等等等。 –

+0

这是关于sugarcrm 4.5的。如果它有帮助 –

回答

0

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

虽然这不必要的复杂,并且一旦遇到太多可能的案例/值组合时,就会成为维护噩梦。就个人而言,我会在应用层中解决这类问题。

+0

那么你如何在PHP中做到这一点呢? –

+0

我会有一组项目类型模板(可以来自数据库或文本文件或数组),并且在创建项目时执行查找循环,将新任务输入到数据库中。 – ty812

0

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

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

创建项目后,您可以加载此数据以插入到任务表中。这使您可以在应用程序中更改任务集而无需更改基本代码。

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