2011-04-03 2 views
1

я получил две таблицы и моя сделка среда позволила ...MySQL вставить значения различия в двух таблицах

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

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

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

+0

Привет, им пытаются создать такую ​​же таблицу, как ваша, как сделать это ...? может у вас положить sql u сделал ... спасибо – Loshi

+0

@ Loshi, вопрос ниже это только правильный ответ для меня =), и это код, а я просто немного отредактировал контент и что положить ^^ – 1myb

+0

nope mate Я хочу создать две таблицы в таблице table1, чтобы поместить данные пользователя отдельно, а также имя пользователя и имя отдельно. im havn не удалось создать две таблицы как таковые. почему я хотел, как создавать таблицы – Loshi

ответ

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

Кажется, это более безопасно и более высокая производительность = D Thx ^^ – 1myb

+0

@Spencer Нет проблем. Реализовано после публикации ответа, что вы не указали PHP, но принципы одинаковы. – Chris

+0

@chris это нормально, нет беспокойства = D Так как ваше решение легко понять ^^ – 1myb

2

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

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

Это тоже правильно, но это не безопасный запрос транзакции> _ < – 1myb

Смежные вопросы