MySQL:将60多个值保存到不同表的最佳方法

时间:2017-09-17 08:58:16

标签: php mysql sql mysqli phpmyadmin

我想创建一个应用程序来保存我的数据库中的手写纸质合同。每份合约都有超过60个值可以保存。我已经使用15个具有主键和外键的表创建了数据库。我的问题是,使用一个过程或多个查询来保存所有这些数据的最佳方法是什么。

我尝试的是创建一个存储过程并将所有这些值作为参数传递。然后在php中执行查询,我调用并传递所有值,如下所示:

CALL SaveContract(11111, "Name", "Surname", 22222, "User", "Password", 'm', "2017-09-06", "norm", "sup", "asac", 29, 5, 7, 125, 3, 123456, 456789, "kiss", "bot", 123, "en", "ram", 33333, "aaaaa", "bbbb", 'm', "2017-09-12", "ccccc", "dddddd", null, null, null, null,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null , 1,null , 1, null,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null ,null , 10, '["","",""]')

虽然在运行此过程时出现错误(#1436 - 线程堆栈溢出),但此错误的解决不是此问题的目标。

将所有参数传递给存储过程会很好。

我正在尝试找到一个在存储过程中一次执行所有内容的解决方案,也许更简单地进行多个INSERT查询,但可能有更好的方法

1 个答案:

答案 0 :(得分:2)

我希望我明白你的意思,你可以用两种不同的方式做到这一点 -

一种是编写一个包含所有60个值作为参数的过程,并在过程中使用插入查询,您可以将数据动态地插入到所有15个表中。

否则,您可以在一个主表上使用“after insert”编写一个触发器,并使用输入查询在该触发器内部,您可以将数据插入多个表中。