我有两个存储数据的组合框(ploegid和trainerid)。不要担心作为参数给出的ploegID和trainerID是正确的。
我想在table ploeg上设置trainer_id,其中id =? 但我也希望更新连接表(persoon)!
表persoon必须是这样的:更新persoon set ploeg_id =?哪里?是参数ploegID
我如何在一个更新声明中执行此操作?内连接?
public class Orchestra
{
public Instrument[] Instruments;
}
public class Instrument
{
public string Name;
}
public class Brass:Instrument
{
public bool IsValved;
}
答案 0 :(得分:0)
当您需要同时执行多个操作(这对于关系数据库非常常见)时,您应该使用存储过程而不是从应用程序执行每个语句。如上所述here,您无法在一个语句中更新两个表。
以下来自mySql文档:
将数据库密集型操作放入存储过程可让您为数据库应用程序定义API。您可以跨多个应用程序和多种编程语言重用此API。这种技术避免了重复数据库代码,节省了由于架构更改而进行更新的时间和精力,调整查询性能或添加新的数据库操作以进行日志记录,安全性等。
不幸的是,我不会说出你的方法名所写的语言,但我们假装它被称为“CreateUser()”。通过让数据库控制通过将其封装在存储过程中创建用户所需的各种更新/插入,您无需担心您的问题 - 如何在一个更新语句中执行多项操作。
总之,人们通常不会使用应用程序代码中的一个更新语句更新多个表 - 它们执行一个存储过程,该过程将在数据库上为它们执行多个更新。
这样做的另一个好处是,您只需对数据库进行一次调用,即可对数据进行任意复杂的操作。