вставка в разные таблицы через один запрос mysql

как я могу вставить в 3 разных таблицы через один запрос mysql, который я хочу написать один запрос mysql, который будет вставляться в 3 разных таблицы. У меня есть форма html, в которой есть разные таблицы, поэтому я буду вставлять данные, собранные из формы в 3 разные таблицы. возможно если так, то как ?? если не почему ???

за один стол

$var1_table1 = $_POST['table1_column1']; $var2_table1 = $_POST['table1_column2']; $var3_table1 = $_POST['table1_column3']; 

для второго стола

  $var1_table2 = $_POST['table2_column1']; $var2_table2 = $_POST['table2_column2']; $var3_table2 = $_POST['table2_column3']; 

для третьей таблицы

  $var1_table3 = $_POST['table3_column1']; $var2_table3 = $POST['table3_column2']; $var3_table3 = $_POST['table3_column3']; 

это формат моей переменной

Solutions Collecting From Web of "вставка в разные таблицы через один запрос mysql"

Короткий ответ

Нет, вы не можете вставлять в несколько таблиц с помощью одного оператора SQL.

Более длинный ответ

Вы можете добиться этого, вставив в таблицу1, а затем настроив триггер в таблице1, чтобы вставить данные в таблицы 2 и 3, используя таблицу BLACKHOLE для временного хранения ваших данных. Что-то вроде этого .

Лично я бы избегал этого, как чума, поскольку он скрывает, как и где данные вставляются в базу данных из данного приложения. Более подробное обсуждение этой практики можно найти здесь .

Если бы я был вами, я бы просто написал три отдельных оператора INSERT в вашем php-приложении и не пытался создать один запрос, который вставляет в несколько таблиц. Это сэкономит вам огромную боль!

Существует не один стандартный запрос, который позволяет вставлять в три таблицы . Однако:

  • Зачем вам нужен один запрос? Почему не только три вопроса?
  • Может быть, использование транзакции может решить вашу проблему?
  • Вы уверены, что вам нужны три разные таблицы, если они почти представляют одни и те же данные? Почему бы не один стол и, может быть, три представления, если это необходимо?
  • Если вам это действительно нужно, вы можете сделать это, используя хранимую процедуру или даже триггер

Насколько мне известно, функция mysql_query () PHP не поддерживает несколько запросов (вставка, выбор, обновление и т. Д.), А при вставке в разные таблицы с разными полями / столбцами вы должны запускать отдельный запрос для каждого. Я не думаю, что есть способ сделать то, что вы хотите.