DELETE
El patrón DELETE de Crono SQL elimina los registros de la tabla destino cuya clave coincida con los registros devueltos por la consulta. Se escribe el SELECT de los registros que se quieren borrar, y Crono SQL elimina exactamente esos.
La clave de eliminación se declara con KEY (col1, col2) en la cabecera. Es obligatoria.
DELETE dwh.dim_products KEY (product_id)SELECT products.product_idFROM staging.productsWHERE discontinued = TRUELa consulta del DELETE admite toda la potencia del SELECT de Crono SQL. El siguiente ejemplo elimina los clientes que no tienen ninguna orden, usando ANTI JOIN:
DELETE dwh.dim_customers KEY (customer_id)SELECT customer_idFROM dwh.dim_customersANTI JOIN staging.orders USING customer_idTambién se pueden combinar varias tablas para expresar condiciones más complejas. Este ejemplo elimina las líneas de pedido de un cliente concreto:
DELETE dwh.fact_order_details KEY (order_id, product_id)SELECT order_details.order_id, order_details.product_idFROM staging.order_detailsINNER JOIN staging.orders USING order_idINNER JOIN staging.customers USING orders(customer_id)WHERE customers.company_name = 'Alfreds Futterkiste'Compatibilidad ANSI
Sección titulada «Compatibilidad ANSI»Por compatibilidad, Crono SQL también soporta la sintaxis estándar del DELETE:
DELETE FROM dwh.fact_order_detailsWHERE order_id = 10248