2011-03-20 58 views
15

Estoy tratando de insertar 2 filas en la misma tabla. El primero ingresará los datos de un seleccionar, el segundo usará vars para los datos. Puedo insertar la primera fila pero tengo problemas para insertar varias filas.Insertar varias filas usando seleccionar

El $ partner_id es para vincular las filas entre sí. Para esto estoy usando un valor de 32char generado en php. ¿Hay alguna forma de establecer edit_partner_id con mysql como el id de la primera fila insertada o esto no es posible debido a que la primera fila debe crearse para poder obtener la última identificación?

¿Es posible agregar una actualización a esto o tendré que ejecutar esto en otra consulta?

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

Gracias

Respuesta

28

Si estoy entendiendo bien su pregunta, cuando usted está tratando de insertar algunos datos de otra tabla y algunos datos que proporcione usted mismo, debe ser capaz de hacer algo como esto utilizando UNIÓN:

INSERT INTO SomeTable (Col1, Col2, Col3) 
SELECT Val1, Val2, Val3 FROM SomeOtherTable 
UNION 
SELECT 'MyProvidedVal1', 'MyProvidedVal2', 'MyProvidedVal3' 

Espero que ayude ...

+0

Sólo el trabajo. Gracias – arbme

+0

No encontré la solución en documentos tan grande gracias :) –

Cuestiones relacionadas