首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过一个mysql查询在不同的表中插入

问通过一个mysql查询在不同的表中插入
EN

Stack Overflow用户
提问于 2012-01-05 16:56:27
回答 3查看 767关注 0票数 0

我如何通过一个mysql查询插入3个不同的表,即我想编写一个mysql查询,它将插入3个不同的表。我基本上有html表单,其中有不同的表,所以我将插入从一个表单收集的数据到3个不同的表。如果是这样的话是不是有可能?如果不是为什么??

一张表

代码语言:javascript
复制
  $var1_table1 = $_POST['table1_column1'];
  $var2_table1 = $_POST['table1_column2'];
  $var3_table1 = $_POST['table1_column3'];

对于第二个表

代码语言:javascript
复制
  $var1_table2 = $_POST['table2_column1'];
  $var2_table2 = $_POST['table2_column2'];
  $var3_table2 = $_POST['table2_column3'];

对于第三个表

代码语言:javascript
复制
  $var1_table3 = $_POST['table3_column1'];
  $var2_table3 = $POST['table3_column2'];
  $var3_table3 = $_POST['table3_column3'];

这是我的变量的格式

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-05 17:22:32

据我所知,PHP的mysql_query()函数不支持多个查询(insert、select、update等),而且当您要插入到具有不同字段/列的不同表中时,您必须为每个查询运行单独的查询。我不认为有办法去做你想做的事情。

票数 0
EN

Stack Overflow用户

发布于 2012-01-05 17:16:50

Short answer

不,您不能使用一条SQL语句插入多个表。

较长的应答

您可以通过将数据插入到table1中,然后在table1上设置一个trigger来将数据插入到表2和表3中,使用BLACKHOLE table暂时存储您的数据。就像this一样。

就我个人而言,我会像避免瘟疫一样避免这种情况,因为它掩盖了从给定应用程序向数据库插入数据的方式和位置。关于这种做法的更深入的讨论可以在here上找到。

如果我是你,我只会在你的php应用程序中编写三个独立的INSERT语句,避免试图创建一个插入多个表的查询。它会帮你省去很多痛苦!

票数 2
EN

Stack Overflow用户

发布于 2012-01-05 17:15:24

没有一个标准查询允许插入到三个表中。但是:

  • 为什么需要一个查询?为什么不只使用三个查询?
  • 也许使用transaction可以解决您的问题?
  • 如果三个表几乎表示相同的数据,您确定需要三个不同的表吗?为什么不是一个表,也许是三个视图?如果您确实需要这样做,可以使用存储过程,甚至是触发器
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8739834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档