Вставка нескольких строк с помощью select
Я пытаюсь вставить 2 строки в одну и ту же таблицу. Первый будет вводить данные из select, второй будет использовать vars для данных. Я могу вставить первую строку, но проблема с вставкой нескольких строк.
$partner_id - связать строки друг с другом. Для этого im использует сгенерированное 32char значение в php. Есть ли способ установить edit_partner_id с mysql в качестве идентификатора первой вставленной строки или это невозможно из-за того, что первая строка должна быть создана, прежде чем вы сможете получить последний id?
Можно ли также добавить обновление к этому или мне нужно будет запустить его в отдельном запросе?
$sql = "INSERT INTO edits_customers (customer_id, creator_id, firstname, surname,
house_no, address_1, address_2, address_3, city, county, postcode,
country, email, home_tel, mobile_tel, work_tel, notes, edit_type,
edit_partner_id )
(SELECT *, 'before', '{$partner_id}' FROM customers WHERE customers.id = 123),
('{$var1}', '{$var2}', '', '', '', '', '', '', '', '', '', '', '', '', '', '',
'', 'after', $partner_id)";
Спасибо
Ответы
Ответ 1
Если я правильно понимаю ваш вопрос, когда вы пытаетесь вставить некоторые данные из другой таблицы и некоторые данные, которые вы предоставляете сами, вы должны сделать что-то подобное с помощью UNION:
INSERT INTO SomeTable ( Col1, Col2, Col3 )
SELECT Val1, Val2, Val3 FROM SomeOtherTable
UNION
SELECT 'MyProvidedVal1', 'MyProvidedVal2', 'MyProvidedVal3'
Надеюсь, что это поможет...