# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
readme
The database enhancement operations library. Support mysql postgresql oracle dmdb hive sqlite database type. Provides data structure definitions, data manipulation, and paging classes.
package main
import (
_ "github.com/jackc/pgx/v5"
_ "github.com/jackc/pgx/v5/stdlib"
"github.com/linlexing/dbx/ddb"
_ "github.com/linlexing/dbx/postgres"
"github.com/linlexing/dbx/schema"
)
func main() {
db, err := ddb.Openx("pgx", "postgres://common:123456@localhost:5432/postgres?sslmode=disable")
if err != nil {
panic(err)
}
//table struct define
//create table
tabTest := schema.NewTable("TestTab")
tabTest.Columns = []*schema.Column{
{
Name: "ID",
Type: schema.TypeString,
MaxLength: 24,
},
{
Name: "Name",
Type: schema.TypeString,
MaxLength: 50,
},
{
Name: "Remark",
Type: schema.TypeString,
},
{
Name: "Age",
Type: schema.TypeInt,
},
{
Name: "Birthday",
Type: schema.TypeDatetime,
},
}
tabTest.PrimaryKeys = []string{"ID"}
// list, err := tabTest.Extract(db.DriverName(), db)
// if err != nil {
// panic(err)
// }
// for _, l := range list {
// println(l)
// }
//db change
if err := tabTest.Update(db.DriverName(), db); err != nil {
panic(err)
}
defer func() {
if _, err := db.Exec("drop table TestTab"); err != nil {
panic(err)
}
}()
//change struct
tabTest.ColumnByName("Name").MaxLength = 100
tabTest.ColumnByName("Age").Type = schema.TypeFloat
//remove Remark
tabTest.Columns = append(tabTest.Columns[:2], tabTest.Columns[3:]...)
tabTest.Columns = append(tabTest.Columns, &schema.Column{
Name: "Detail",
Type: schema.TypeString,
MaxLength: 100,
})
// list, err = tabTest.Extract(db.DriverName(), db)
// if err != nil {
// panic(err)
// }
// for _, l := range list {
// println(l)
// }
//db change
if err := tabTest.Update(db.DriverName(), db); err != nil {
panic(err)
}
}