#include <db.h> int DB->truncate(DB *db, DB_TXN *txnid, u_int32_t *countp, u_int32_t flags);
The DB->truncate()
method empties the database, discarding all
records it contains. The number of records discarded from the
database is returned in countp.
When called on a database configured with secondary indices using the
DB->associate()
method, the DB->truncate()
method truncates the primary database and
all secondary indices. A count of the records discarded from the
primary database is returned.
It is an error to call the DB->truncate()
method on a database with
open cursors.
The DB->truncate()
method is non-atomic when used on a sliced
database. If the operation fails, it is possible for the resulting database files
to be in an inconsistent state.
The DB->truncate()
method returns a non-zero error value on failure and 0 on success.
If the operation is part of an application-specified transaction, the txnid parameter is a transaction handle returned from DB_ENV->txn_begin() ; if the operation is part of a Berkeley DB Concurrent Data Store group, the txnid parameter is a handle returned from DB_ENV->cdsgroup_begin() ; otherwise NULL. If no transaction handle is specified, but the operation occurs in a transactional database, the operation will be implicitly transaction protected.
The countp parameter references memory into which the number of records discarded from the database is copied.
The DB->truncate()
method may fail and return one of the following non-zero errors:
A Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time.
You attempted to open a database handle that is configured for no waiting exclusive locking, but the exclusive lock could not be immediately obtained. See DB->set_lk_exclusive() for more information.