Summary: Delete records from an external SQL database table that match a specified filter.
URI Format
pfx-sql:delete?table=myTable&filter=myFilter&dataSource=myDb
Parameters
|
Parameter |
Type |
Default |
Required |
Description |
|---|---|---|---|---|
|
|
String |
|
No |
Name of the Spring DataSource bean |
|
|
String |
|
Yes |
Target database table |
|
|
String |
|
Yes |
Filter reference that determines which records to delete |
|
|
SQLDialect |
|
No |
SQL dialect |
Examples
Delete Inactive Products
<route id="deleteInactive">
<from uri="timer://cleanup?repeatCount=1"/>
<to uri="pfx-sql:delete?table=products&filter=inactiveFilter&dataSource=myDb"/>
</route>
Delete with Specific Dialect
<route id="deleteFromOracle">
<from uri="timer://cleanup?repeatCount=1"/>
<to uri="pfx-sql:delete?table=old_transactions&filter=expiredFilter&dataSource=oracleDb&dialect=ORACLE"/>
</route>
Delete Before Reload Pattern
<route id="deleteAndReload">
<from uri="timer://sync?repeatCount=1"/>
<!-- Delete stale records first -->
<to uri="pfx-sql:delete?table=products&filter=staleFilter&dataSource=myDb"/>
<!-- Then reload fresh data -->
<to uri="pfx-api:fetch?objectType=P&filter=activeProducts"/>
<to uri="pfx-sql:insert?table=products&mapper=dbMapper&dataSource=myDb"/>
</route>
Common Pitfalls
|
Problem |
Cause |
Fix |
|---|---|---|
|
No records deleted |
Filter does not match any rows |
Verify the filter logic matches existing data |
|
All records deleted unexpectedly |
Filter is too broad |
Review filter definition; consider using |
|
Missing |
Required parameter not provided |
Add |
|
Missing |
Required parameter not provided |
Add |
See Also
-
pfx-sql Component — Parent reference
-
pfx-sql:truncate — Remove all rows (no filter needed)