package
5.2.0
Repository: https://github.com/issue9/orm.git
Documentation: pkg.go.dev

# Functions

ErrConstraintExists 返回约束名已经存在的错误.
GetPrimitiveType 获取 t 所关联的 PrimitiveType 值 t.Kind 不能为 reflect.Ptr 否则将返回 Auto。.
NewBuilder 声明一个新的 Builder 实例.
NewColumn 从 Go 类型中生成 [Column].
NewModel 初始化 Model cap 表示列的数量,如果指定了,可以提前分配 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 的一个判断依据。.

# Variables

ErrAutoIncrementPrimaryKeyConflict 自增和主键不能同时存在 当添加自增时,会自动将其转换为主键,如果此时已经已经存在主键,则会报此错误。.
ErrInvalidColumnType 无效的列类型 作为列类型,该数据类型必须是可序列化的。 像 [reflect.Func]、[reflect.Chan] 等类型的数据都将返回该错误。.

# 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 数据库执行的基本接口 orm.DB 和 orm.Tx 应该实现此接口。.
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 转换成相应数据的实际类型。.