# Database drivers Powerful database drivers for package gdb. ## Installation Let's take `mysql` for example. ```shell go get github.com/gogf/gf/contrib/drivers/mysql/v2@latest # Easy for copying: go get github.com/gogf/gf/contrib/drivers/clickhouse/v2@latest go get github.com/gogf/gf/contrib/drivers/dm/v2@latest go get github.com/gogf/gf/contrib/drivers/gaussdb/v2@latest go get github.com/gogf/gf/contrib/drivers/mariadb/v2@latest go get github.com/gogf/gf/contrib/drivers/mssql/v2@latest go get github.com/gogf/gf/contrib/drivers/oceanbase/v2@latest go get github.com/gogf/gf/contrib/drivers/oracle/v2@latest go get github.com/gogf/gf/contrib/drivers/pgsql/v2@latest go get github.com/gogf/gf/contrib/drivers/sqlite/v2@latest go get github.com/gogf/gf/contrib/drivers/sqlitecgo/v2@latest go get github.com/gogf/gf/contrib/drivers/tidb/v2@latest ``` Choose and import the driver to your project: ```go import _ "github.com/gogf/gf/contrib/drivers/mysql/v2" ``` Commonly imported at top of `main.go`: ```go package main import ( _ "github.com/gogf/gf/contrib/drivers/mysql/v2" // Other imported packages. ) func main() { // Main logics. } ``` ## Supported Drivers ### MySQL ```go import _ "github.com/gogf/gf/contrib/drivers/mysql/v2" ``` ### MariaDB ```go import _ "github.com/gogf/gf/contrib/drivers/mariadb/v2" ``` ### TiDB ```go import _ "github.com/gogf/gf/contrib/drivers/tidb/v2" ``` ### OceanBase ```go import _ "github.com/gogf/gf/contrib/drivers/oceanbase/v2" ``` ### GaussDB ```go import _ "github.com/gogf/gf/contrib/drivers/gaussdb/v2" ``` ### SQLite ```go import _ "github.com/gogf/gf/contrib/drivers/sqlite/v2" ``` #### cgo version When the target is a `32-bit` Windows system, the `cgo` version needs to be used. ```go import _ "github.com/gogf/gf/contrib/drivers/sqlitecgo/v2" ``` ### PostgreSQL ```go import _ "github.com/gogf/gf/contrib/drivers/pgsql/v2" ``` ### SQL Server ```go import _ "github.com/gogf/gf/contrib/drivers/mssql/v2" ``` Note: - `InsertIgnore` returns error if there is no primary key or unique index submitted with record. - It supports server version >= `SQL Server2005` - It ONLY supports `datetime2` and `datetimeoffset` types for auto handling created_at/updated_at/deleted_at columns, because datetime type does not support microseconds precision when column value is passed as string. ### Oracle ```go import _ "github.com/gogf/gf/contrib/drivers/oracle/v2" ``` Note: - It does not support `LastInsertId`. - `InsertIgnore` returns error if there is no primary key or unique index submitted with record. ### ClickHouse ```go import _ "github.com/gogf/gf/contrib/drivers/clickhouse/v2" ``` Note: - It does not support `InsertIgnore/InsertAndGetId` features. - It does not support `Save/Replace` features. - It does not support `Transaction` feature. - It does not support `RowsAffected` feature. ### DM ```go import _ "github.com/gogf/gf/contrib/drivers/dm/v2" ``` Note: - `InsertIgnore` returns error if there is no primary key or unique index submitted with record. ## Custom Drivers It's quick and easy, please refer to current driver source. It's quite appreciated if any PR for new drivers support into current repo.