Delete Rows (Data Management)
Summary
Deletes all or the selected subset of rows from the input.
If the input rows are from a feature class or table, all rows will be deleted. If the input rows are from a layer or table view with no selection, all rows will be deleted.
Usage
-
The Input Rows parameter can be an INFO or dBASE table, ArcSDE, file, or personal geodatabase table or feature class, shapefile, layer, or table view.
-
If this tool is used on feature data, the entire row, including the geometry, will be deleted.
-
If a layer or table view is input, and the layer or table view does not have a selection, all rows will be deleted. If a table is input, all rows will be deleted. If the table resides in ArcSDE, a database truncate operation will be used when run against a table, a feature class, a table view without a selection, or a feature layer without a selection. A database truncate operation is much faster than deleting row by row. Truncate operations cannot be rolled back and cannot be recovered or undone using undo/redo.
-
When working in ArcMap and using a layer or table view with a selection as input, using this tool in an edit session will allow for the Delete Rows operation to be undone using undo/redo.
Caution:If run against a layer or table view that does not have a selection, the operation cannot be undone using undo/redo.
Syntax
| Parameter | Explanation | Data Type |
in_rows |
The feature class, layer, table, or table view whose rows will be deleted. | Table View |
Code Sample
The following Python window script demonstrates how to use the DeleteRows function in immediate mode.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CopyRows_management("accident.dbf", "C:/output/accident2.dbf")
arcpy.DeleteRows_management("C:/output/accident2.dbf")
The following stand-alone script demonstrates how to use the DeleteRows function to delete rows based on an expression.
# Name: DeleteRows_Example2.py
# Description: Delete rows from a table based on an expression
# Import system modules
import arcpy
from arcpy import env
try:
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inTable = "accident.dbf"
outTable = "C:/output/new_accident.dbf"
tempTableView = "accidentTableView"
expression = arcpy.AddFieldDelimiters(tempTableView, "Measure") + " = 0"
# Execute CopyRows to make a new copy of the table
arcpy.CopyRows_management(inTable, outTable)
# Execute MakeTableView
arcpy.MakeTableView_management(outTable, tempTableView)
# Execute SelectLayerByAttribute to determine which rows to delete
arcpy.SelectLayerByAttribute_management(tempTableView, "NEW_SELECTION", expression)
# Execute GetCount and if some features have been selected, then execute
# DeleteRows to remove the selected rows.
if int(arcpy.GetCount_management(tempLayer).getOutput(0)) > 0:
arcpy.DeleteRows_management(tempLayer)
except Exception, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message