*DEFAULT-DATABASE*
Prev | Connection and Initialisation | Next

## Name

*DEFAULT-DATABASE* — The default database object to use.Variable

## Value Type

Any object of type database, or `NIL` to indicate no default database.

## Initial Value

`NIL`

## Description

Any function or macro in CLSQL that operates on a database uses the value of this variable as the default value for it's `database` parameter.

The value of this parameter is changed by calls to `connect`, which sets *default-database* to the database object it returns. It is also changed by calls to `disconnect`, when the database object being disconnected is the same as the value of *default-database*. In this case `disconnect` sets *default-database* to the first database that remains in the list of active databases as returned by `connected-databases`, or `NIL` if no further active databases exist.

The user may change *default-database* at any time to a valid value of his choice.

### Caution

If the value of *default-database* is `NIL`, then all calls to CLSQL functions on databases must provide a suitable `database` parameter, or an error will be signalled.

## Examples

            (connected-databases)
            => NIL
            (connect '("dent" "newesim" "dent" "dent") :database-type :mysql)
            => #<CLSQL-MYSQL:MYSQL-DATABASE {48385F55}>
            (connect '(nil "template1" "dent" nil) :database-type :postgresql)
            => #<CLSQL-POSTGRESQL:POSTGRESQL-DATABASE {483868FD}>
            (connect '("dent" "newesim" "dent" "dent") :database-type :mysql :if-exists :new)
            => #<CLSQL-MYSQL:MYSQL-DATABASE {48387265}>
            *default-database*
            => #<CLSQL-MYSQL:MYSQL-DATABASE {48387265}>
            (disconnect)
            => T
            *default-database*
            => #<CLSQL-POSTGRESQL:POSTGRESQL-DATABASE {483868FD}>
            (disconnect)
            => T
            *default-database*
            => #<CLSQL-MYSQL:MYSQL-DATABASE {48385F55}>
            (disconnect)
            => T
            *default-database*
            => NIL
            (connected-databases)
            => NIL

## Affected By

`connect`
`disconnect`

## See Also

`connected-databases`

## Notes

### Note

This variable is intended to facilitate working with CLSQL in an interactive fashion at the top-level loop, and because of this, `connect` and `disconnect` provide some fairly complex behaviour to keep *default-database* set to useful values. Programmatic use of CLSQL should never depend on the value of *default-database* and should provide correct database objects via the `database` parameter to functions called.

Prev | Up | Next
*DB-POOL-MAX-FREE-CONNECTIONS* | Home | *DEFAULT-DATABASE-TYPE*