github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/sqlx/builder/obj_database.go (about) 1 package builder 2 3 import ( 4 "fmt" 5 ) 6 7 func DB(name string) *Database { 8 return &Database{ 9 Name: name, 10 Tables: Tables{}, 11 } 12 } 13 14 type Database struct { 15 Name string 16 Tables 17 } 18 19 func (d *Database) Register(table *Table) *Database { 20 table.DB = d 21 d.Tables.Add(table) 22 return d 23 } 24 25 func (d *Database) Table(name string) *Table { 26 if table, ok := d.Tables[name]; ok { 27 return table 28 } 29 return nil 30 } 31 32 func (d *Database) String() string { 33 return quote(d.Name) 34 } 35 36 func (d *Database) Drop() *Stmt { 37 return (*Stmt)(Expr(fmt.Sprintf("DROP DATABASE %s", d.String()))) 38 } 39 40 func (d *Database) Create(ifNotExists bool) *Stmt { 41 if ifNotExists { 42 return (*Stmt)(Expr(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", d.String()))) 43 } 44 return (*Stmt)(Expr(fmt.Sprintf("CREATE DATABASE %s", d.String()))) 45 }