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  }