【问题标题】:Mysql multiple insertsMysql多次插入
【发布时间】:2013-01-04 06:46:11
【问题描述】:

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

这是一个例子

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

【问题讨论】:

  • 读了第七遍了,还是没意思。
  • 确定更容易。我有项目和项目任务。如果项目类型 = 编写代码,则需要创建 5 个项目任务。任务 1 - “获取信息” - 任务 2 - “启动代码” - 等等 当项目 typr = 创建网站时需要创建任务 任务 1 - “获取服务器详细信息” 任务 2 - “确保所有应用程序都已加载” - 等等.等等等等。
  • 此 si 在 sugarcrm 4.5 上。如果有帮助

标签: mysql triggers insert row


【解决方案1】:

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

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

【讨论】:

  • 那么你将如何在 php 中做到这一点?
  • 我会有一组项目类型模板(可以来自数据库或文本文件或数组),当创建项目时,执行查找循环,将新任务输入数据库.
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2016-08-13
    • 2015-05-02
    • 2011-12-20
    • 1970-01-01
    • 2017-06-05
    • 2017-10-26
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多