1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2024-12-22 00:36:41 +02:00
crud_generator/vendor/github.com/jimsmart/schema/doc.go
Nikitin Aleksandr a6ea64ee3e новый
2023-10-24 18:03:04 +03:00

76 lines
2.1 KiB
Go

// Package schema provides access to database schema metadata, for database/sql drivers.
//
// For further information about current driver support status, see https://github.com/jimsmart/schema
//
// Table Metadata
//
// The schema package works alongside database/sql and its underlying driver to provide schema metadata.
//
// // Fetch names of all tables
// tnames, err := schema.TableNames(db)
// ...
// // tnames is [][2]string
// for i := range tnames {
// fmt.Println("Table:", tnames[i][1])
// }
//
// // Output:
// // Table: employee_tbl
// // Table: department_tbl
// // Table: sales_tbl
//
// Both user permissions and current database/schema effect table visibility.
//
// Use schema.ColumnTypes() to query column type metadata for a single table:
//
// // Fetch column metadata for given table
// tcols, err := schema.ColumnTypes(db, "", "employee_tbl")
// ...
// // tcols is []*sql.ColumnType
// for i := range tcols {
// fmt.Println("Column:", tcols[i].Name(), tcols[i].DatabaseTypeName())
// }
//
// // Output:
// // Column: employee_id INTEGER
// // Column: first_name TEXT
// // Column: last_name TEXT
// // Column: created_at TIMESTAMP
//
// To query table names and column type metadata for all tables, use schema.Tables().
//
// See also https://golang.org/pkg/database/sql/#ColumnType
//
// Note: underlying support for column type metadata is driver implementation specific and somewhat variable.
//
// View Metadata
//
// The same metadata can also be queried for views also:
//
// // Fetch names of all views
// vnames, err := schema.ViewNames(db)
// ...
// // Fetch column metadata for given view
// vcols, err := schema.ColumnTypes(db, "", "monthly_sales_view")
// ...
// // Fetch column metadata for all views
// views, err := schema.Views(db)
// ...
//
// Primary Key Metadata
//
// To obtain a list of columns making up the primary key for a given table:
//
// // Fetch primary key for given table
// pks, err := schema.PrimaryKey(db, "", "employee_tbl")
// ...
// // pks is []string
// for i := range pks {
// fmt.Println("Primary Key:", pks[i])
// }
//
// // Output:
// // Primary Key: employee_id
//
package schema