package
6.0.0-beta.3
Repository: https://github.com/issue9/orm.git
Documentation: pkg.go.dev

# Functions

ErrColumnNotFound 返回列不存在的错误.
ErrConstraintExists 返回约束名已经存在的错误.
ErrInvalidColumnType 无效的列类型 当一个数据无法表达为数据库中的对应的字段类型时返回此错误。.
GetPrimitiveType 获取 t 所关联的 [PrimitiveType] 值 t.Kind 不能为 [reflect.Ptr] 否则将返回 [Auto]。.
NewBuilder 声明一个新的 Builder 实例.
NewColumn 从 Go 类型中生成 [Column].
NewModel 初始化 [Model] cap 表示列的数量,如果指定了,可以提前分配 [Model.Columns] 字段的大小。.
NewStmt 声明 [Stmt] 实例 如果 orders 为空,则 Stmt 的表现和 [sql.Stmt] 是完全相同的, 如果不为空,则可以处理 [sql.NamedArg] 类型的参数。.

# Constants

当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
Check 约束.
外键约束.
约束类型 以下定义了一些常用的约束类型,但是并不是所有的数据都支持这些约束类型, 比如 mysql<8.0.16 和 mariadb<10.2.1 不支持 check 约束。.
主键约束.
唯一约束.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
普通的索引.
唯一索引.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
作用于表名,列名等非关键字上的引号占位符。 在执行会自动替换成该数据库相应的符号。.
作用于表名,列名等非关键字上的引号占位符。 在执行会自动替换成该数据库相应的符号。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
目前支持的数据模型类别 Table 表示为一张普通的数据表,默认的模型即为 [Table]; 如果实现了 [Viewer] 接口,则该模型改变视图类型,即 [View]。 两者的创建方式稍微有点不同: Table 类型创建时,会采用列、约束和索引等信息创建表; 而 View 创建时,只使用了 Viewer 接口返回的 Select 语句作为内容生成语句,像约束等信息,仅作为查询时的依据, 当然 select 语句中的列需要和 [Columns] 中的列要相对应, 否则可能出错。 在视图类型中,唯一约束、主键约束、自增约束依然是可以定义的, 虽然不会呈现在视图中,但是在查询时,可作为 orm 的一个判断依据。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
TimeFormatLayout 时间如果需要转换成字符串采用此格式.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
当前支持的 [PrimitiveType] 值 其中的 [String] 被设计成可以保存部分类型为 [reflect.Interface] 的数据结构, 但是一个有限的集合,比如将一个 any 字段赋予 slice 类型的数,在保存时可会不被支持。 且在读取时,各个数据库略有不同,比如 mysql 返回 []byte,而其它数据一般返回 string。.
目前支持的数据模型类别 Table 表示为一张普通的数据表,默认的模型即为 [Table]; 如果实现了 [Viewer] 接口,则该模型改变视图类型,即 [View]。 两者的创建方式稍微有点不同: Table 类型创建时,会采用列、约束和索引等信息创建表; 而 View 创建时,只使用了 Viewer 接口返回的 Select 语句作为内容生成语句,像约束等信息,仅作为查询时的依据, 当然 select 语句中的列需要和 [Columns] 中的列要相对应, 否则可能出错。 在视图类型中,唯一约束、主键约束、自增约束依然是可以定义的, 虽然不会呈现在视图中,但是在查询时,可作为 orm 的一个判断依据。.

# Structs

Builder 用于构建 SQL 语句 出错时,错误信息会缓存,并在 [Builder.String] 或 [Builder.Bytes] 时返回, 或是通过 [Builder.Err] 查看是否存在错误。.
Column 列结构.
No description provided by the author
No description provided by the author
No description provided by the author
Stmt 实现自定义的 Stmt 实例 功能与 [sql.Stmt] 完全相同,但是实现了对 [sql.NamedArgs] 的支持。.

# Interfaces

No description provided by the author
Dialect 用于描述与数据库和驱动相关的一些特性 Dialect 的实现者除了要实现 Dialect 之外, 还需要根据数据库的支持情况实现 sqlbuilder 下的部分 *Hooker 接口。.
Engine 数据库执行的基本接口 Engine 对查询语句作了以下处理: - {} 符号会被替换为 [Dialect.Quotes] 对应的符号; - # 会被替换为 [Engine.TablePrefix] 的返回值;.
No description provided by the author
No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author
No description provided by the author
No description provided by the author
PrimitiveType 表示 Go 对象在数据库中实际的存储方式 PrimitiveType 由 [Dialect.SQLType] 转换成相应数据的实际类型。.