tengo 2 tablas (MySQL)actualización por lotes MySQL
- data_details
- accounts_invoices
Lo ideal sería que cada data_details deben tener un id accounts_invoices. (Data_details tiene una clave externa con la clave primaria de accounts_invoices)
Por alguna razón hay data_details registros donde hay accounts_invoice_id no existe en accounts_invoices mesa
así que traté de actualizar esos data_details registros con un conocido Identificación del accounts_invoice. esto es lo que hice
update data_details
set account_invoice_id = 1
where account_invoice_id in (
select d.id
from data_details d left join accounts_invoices a
on d.account_invoice_id = a.id
where a.id is null
)
Sin embargo, un error se produce diciendo
Puede especificar tabla de destino 'data_details' para la actualización en la cláusula FROM (error 1093)
Alguien me puede ayudar, gracias de antemano
aplausos
sameera
Para evitar este problema en el futuro, recomiendo usar InnoDB y restricciones de claves externas. – Znarkus
Hola @Znarkus, gracias por el comentario, básicamente también estoy tratando de agregar una relación de clave externa a esta tabla existente: D (data_details) – sameera207
no probado pero la consulta de mysql: UPDATE data_details SET d1 account_invoice_id = 1 FROM data_details d1 combinación interna data_details d2 = eN d1.account_invoice_id d1.id LEFT JOIN accounts_invoices una de d2.account_invoice_id = a.id DONDE a.id es nulo –