DELETE
DELETE(缩写关键字为DEL)是ANSI标准的SQL语法操作符,用于从表中删除记录。DSC支持Teradata的DELETE语句及其缩写关键字DEL。不包含WHERE子句的DELETE语句在DWS中被迁移为TRUNCATE。通过deleteToTruncate参数可以配置是否启用/禁用此行为。
输入:DELETE
1 2 |
DEL FROM tab1 WHERE a =10; |
输出
1 2 |
DELETE FROM tab1 WHERE a =10; |
输入:DELETE,不使用WHERE(如果deletetoTruncate=TRUE,则迁移为TRUNCATE)
1
|
DELETE FROM ${schemaname} . "tablename" ALL; |
输出
1 2 3 |
TRUNCATE TABLE ${schemaname} . "tablename"; |
以下输入示例中,DELETE和FROM子句引用相同表,按是否使用WHERE子句区分:
输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
DELETE DP_TMP.M_P_TX_SCV_REMAINING_PARTY FROM DP_TMP.M_P_TX_SCV_REMAINING_PARTY ALL ; --- DELETE DP_VMCTLFW.CTLFW_Process_Id FROM DP_VMCTLFW.CTLFW_Process_Id WHERE (Process_Name = :_spVV2 ) AND (Process_Id NOT IN (SELECT MAX(Process_Id )(NAMED Process_Id ) FROM DP_VMCTLFW.CTLFW_Process_Id WHERE Process_Name = :_spVV2 ) ); --- DELETE CPID FROM DP_VMCTLFW.CTLFW_Process_Id AS CPID WHERE (Process_Name = :_spVV2 ) AND (Process_Id NOT IN (SELECT MAX(Process_Id )(NAMED Process_Id ) FROM DP_VMCTLFW.CTLFW_Process_Id WHERE Process_Name = :_spVV2 ) ); |
输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
DELETE FROM DP_TMP.M_P_TX_SCV_REMAINING_PARTY; --- DELETE FROM DP_VMCTLFW.CTLFW_Process_Id WHERE (Process_Name = :_spVV2 ) AND (Process_Id NOT IN (SELECT MAX(Process_Id )(NAMED Process_Id ) FROM DP_VMCTLFW.CTLFW_Process_Id WHERE Process_Name = :_spVV2 ) ); --- DELETE FROM DP_VMCTLFW.CTLFW_Process_Id AS CPID WHERE (Process_Name = :_spVV2 ) AND (Process_Id NOT IN (SELECT MAX(Process_Id )(NAMED Process_Id ) FROM DP_VMCTLFW.CTLFW_Process_Id WHERE Process_Name = :_spVV2 ) ); |
DELETE table_alias FROM table
输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
SQL_Detail10124.sql delete a from ${BRTL_DCOR}.BRTL_CS_POT_CUST_UMPAY_INF_S as a where a.DW_Snsh_Dt = cast('${v_Trx_Dt}' as date format 'yyyy-mm-dd') and a.DW_Job_Seq = 1 ; was migrated as below: DELETE FROM BRTL_DCOR.BRTL_CS_POT_CUST_UMPAY_INF_S AS a USING WHERE a.DW_Snsh_Dt = CAST( lv_mig_v_Trx_Dt AS DATE ) AND a.DW_Job_Seq = 1 ; SQL_Detail10449.sql delete a from ${BRTL_DCOR}.BRTL_EM_YISHITONG_USR_INF as a where a.DW_Job_Seq = 1 ; was migrated as below: DELETE FROM BRTL_DCOR.BRTL_EM_YISHITONG_USR_INF AS a USING WHERE a.DW_Job_Seq = 1 ; SQL_Detail5742.sql delete a from ${BRTL_DCOR}.BRTL_PD_FP_NAV_ADT_INF as a; was migrated as DELETE a FROM BRTL_DCOR.BRTL_PD_FP_NAV_ADT_INF AS a ; |
输出
1 2 3 4 5 6 7 8 9 |
SQL_Detail10124.sql delete from ${BRTL_DCOR}.BRTL_CS_POT_CUST_UMPAY_INF_S as a where a.DW_Snsh_Dt = cast('${v_Trx_Dt}' as date format 'yyyy-mm-dd') and a.DW_Job_Seq = 1 ; SQL_Detail10449.sql delete from ${BRTL_DCOR}.BRTL_EM_YISHITONG_USR_INF as a where a.DW_Job_Seq = 1 ; SQL_Detail5742.sql delete from ${BRTL_DCOR}.BRTL_PD_FP_NAV_ADT_INF as a; |