Prior to using this command, the enable_bottomless engine variable must be set to ON (the default value).

Takes an unlimited storage database offline. The data remains on remote storage and should be deleted separately if you wish to completely remove it.

It removes the reference to the detached database from the cluster. Hence your ATTACH command needs to specify the location where to attach from.

Check here for the permissions required to use this command.


DETACH DATABASE remote_database_name [AT MILESTONE "milestone_name" | FORCE]



A quoted string that is the milestone to detach the database at.


  • If FORCE is specified, the following applies:

    • The database is dropped from the SingleStore cluster. All data in the detached database that is stored locally in the cluster is deleted (and not uploaded to remote storage). However, FORCE does not remove the corresponding database files from the remote object store; you should remove these files manually, if desired.

  • If FORCE is not specified, the following apply:

    • A milestone (a restore point) is created. The CREATE MILESTONE command is run implicitly.

    • While the milestone is being created, SingleStore uploads the remote database's local cluster data to remote storage that has not yet been synced.

    • If milestone_name is not specified, a name containing the current timestamp is automatically generated.

  • Once a database is detached, information about that database and its milestones is no longer visible in the MV_* views such as MV_MILESTONES and MV_BOTTOMLESS_DATABASE. The information is available again once the database is reattached.

  • After detaching a database, you can reattach the database using ATTACH DATABASE. The reattach can be done optionally at a milestone or a point in time, and with the same or a different database name.

  • This command cannot be run on system databases.

  • Refer to the Permission Matrix for the required permission.



Last modified: February 23, 2024

Was this article helpful?