Skip to content

Commit 1c85333

Browse files
committed
docs: include option 'delete_rows' in docstrings. fixed the doctest suite after adding a new example using 'delete_rows' to it.
1 parent 10762c6 commit 1c85333

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

pandas/core/generic.py

+13-2
Original file line numberDiff line numberDiff line change
@@ -2788,7 +2788,7 @@ def to_sql(
27882788
con,
27892789
*,
27902790
schema: str | None = None,
2791-
if_exists: Literal["fail", "replace", "append"] = "fail",
2791+
if_exists: Literal["fail", "replace", "append", "delete_rows"] = "fail",
27922792
index: bool = True,
27932793
index_label: IndexLabel | None = None,
27942794
chunksize: int | None = None,
@@ -2825,12 +2825,13 @@ def to_sql(
28252825
schema : str, optional
28262826
Specify the schema (if database flavor supports this). If None, use
28272827
default schema.
2828-
if_exists : {'fail', 'replace', 'append'}, default 'fail'
2828+
if_exists : {'fail', 'replace', 'append', 'delete_rows'}, default 'fail'
28292829
How to behave if the table already exists.
28302830
28312831
* fail: Raise a ValueError.
28322832
* replace: Drop the table before inserting new values.
28332833
* append: Insert new values to the existing table.
2834+
* delete_rows: If a table exists, delete all records and insert data.
28342835
28352836
index : bool, default True
28362837
Write DataFrame index as a column. Uses `index_label` as the column
@@ -2947,6 +2948,16 @@ def to_sql(
29472948
... conn.execute(text("SELECT * FROM users")).fetchall()
29482949
[(0, 'User 6'), (1, 'User 7')]
29492950
2951+
Delete all rows before inserting new records with ``df3``
2952+
2953+
>>> df3 = pd.DataFrame({"name": ['User 8', 'User 9']})
2954+
>>> df3.to_sql(name='users', con=engine, if_exists='delete_rows',
2955+
... index_label='id')
2956+
2
2957+
>>> with engine.connect() as conn:
2958+
... conn.execute(text("SELECT * FROM users")).fetchall()
2959+
[(0, 'User 8'), (1, 'User 9')]
2960+
29502961
Use ``method`` to define a callable insertion method to do nothing
29512962
if there's a primary key conflict on a table in a PostgreSQL database.
29522963

0 commit comments

Comments
 (0)