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.
Note:Deleting all rows from a table with a large number of rows can be slow. If your intent is to delete all the rows in the table you should consider using the Truncate Table tool instead. Please see the Truncate Table documentation for important cautionary statements on its use.
-
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.
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 as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("Line {0}".format(tb.tb_lineno))
print(e.message)