MySQL将差异值插入两个表中

时间:2011-04-03 09:09:11

标签: mysql database data-structures transactions

我有两张桌子,我的环境交易是允许的......

表A - ID +名称

表B - ID +值A +值B + IDTable A

我可以知道如何编写查询以立即插入值吗?希望它可以在单个查询中完成...只是性能是最受关注的。

2 个答案:

答案 0 :(得分:2)

您不能使用单个查询在不同的表上插入。

insert into tableA (name) values ('name');
set @last = last_insert_id();
insert into tableB (valueA,valueB,idtableA) values ('valueA','valueB',@last);

答案 1 :(得分:2)

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");