MySQL вставляет значения различий в две таблицы - PullRequest
1 голос
/ 03 апреля 2011

у меня есть две таблицы, и моя транзакция среды разрешена ...

Таблица A - ID + Имя

Таблица B - ID + Значение A + Значение B + IDTable A

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

Ответы [ 2 ]

2 голосов
/ 03 апреля 2011
mysql_query("BEGIN");

$result_1 = mysql_query("INSERT INTO table_a ('name') values ('Chris')");

if( ! $result_1) {
    mysql_query("ROLLBACK");
    die(); // or handle the error however you choose
}

$table_1_id = mysql_insert_id();
$result_2 = mysql_query("INSERT INTO table_b ('value_a', 'value_b', 'table_a_id') values ('v1', 'v2', $table_1_id)");

if( ! $result_2) {
    mysql_query("ROLLBACK");
    die(); // or handle the error however you choose
}

mysql_query("COMMIT");
2 голосов
/ 03 апреля 2011

Вы не можете выполнить вставку в разные таблицы одним запросом.

insert into tableA (name) values ('name');
set @last = last_insert_id();
insert into tableB (valueA,valueB,idtableA) values ('valueA','valueB',@last);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...