Interface TableCreateBuilder

    • Method Detail

      • getTableName

        @NotNull
        @NotNull java.lang.String getTableName()
      • setTableSettings

        TableCreateBuilder setTableSettings​(@NotNull
                                            @NotNull java.lang.String settings)
      • setTableComment

        TableCreateBuilder setTableComment​(@Nullable
                                           @Nullable java.lang.String comment)
        设定表的标注,一般用于解释该表的作用。
        Parameters:
        comment - 表标注
        Returns:
        TableCreateBuilder
      • setColumns

        TableCreateBuilder setColumns​(@NotNull
                                      @NotNull java.lang.String... columns)
        直接设定表的所有列信息
        Parameters:
        columns - 列的相关信息 (包括列设定)
        Returns:
        TableCreateBuilder
      • addColumn

        TableCreateBuilder addColumn​(@NotNull
                                     @NotNull java.lang.String column)
        为该表添加一个列
        Parameters:
        column - 列的相关信息
        如 `uuid` VARCHAR(36) NOT NULL UNIQUE KEY
        Returns:
        TableCreateBuilder
      • addColumn

        default TableCreateBuilder addColumn​(@NotNull
                                             @NotNull java.lang.String columnName,
                                             @NotNull
                                             @NotNull java.lang.String settings)
        为该表添加一个列
        Parameters:
        columnName - 列名
        settings - 列的设定
        如 VARCHAR(36) NOT NULL UNIQUE KEY
        Returns:
        TableCreateBuilder
      • addColumn

        default TableCreateBuilder addColumn​(@NotNull
                                             @NotNull java.lang.String columnName,
                                             @NotNull
                                             @NotNull java.lang.String settings,
                                             @NotNull
                                             @NotNull java.lang.String comments)
        为该表添加一个列
        Parameters:
        columnName - 列名
        settings - 列的设定
        如 VARCHAR(36) NOT NULL UNIQUE KEY
        comments - 列的注解,用于解释该列数据的作用
        Returns:
        TableCreateBuilder
      • addAutoIncrementColumn

        TableCreateBuilder addAutoIncrementColumn​(@NotNull
                                                  @NotNull java.lang.String columnName,
                                                  @Nullable
                                                  @Nullable NumberType numberType,
                                                  boolean asPrimaryKey,
                                                  boolean unsigned)
        为该表添加一个自增列

        自增列强制要求为数字类型,非空,且为UNIQUE。

        注意:一个表只允许有一个自增列!

        Parameters:
        columnName - 列名
        numberType - 数字类型,若省缺则为 NumberType.INT
        asPrimaryKey - 是否为主键,若为false则设定为唯一键
        unsigned - 是否采用 UNSIGNED (即无负数,可以增加自增键的最高数,建议为true)
        Returns:
        TableCreateBuilder
      • addAutoIncrementColumn

        default TableCreateBuilder addAutoIncrementColumn​(@NotNull
                                                          @NotNull java.lang.String columnName,
                                                          boolean asPrimaryKey,
                                                          boolean unsigned)
        为该表添加一个INT类型的自增主键列

        自增列强制要求为数字类型,非空,且为UNIQUE。

        注意:一个表只允许有一个自增列!

        Parameters:
        columnName - 列名
        asPrimaryKey - 是否为主键,若为false则设定为唯一键
        unsigned - 是否采用 UNSIGNED (即无负数,可以增加自增键的最高数,建议为true)
        Returns:
        TableCreateBuilder
      • addAutoIncrementColumn

        default TableCreateBuilder addAutoIncrementColumn​(@NotNull
                                                          @NotNull java.lang.String columnName,
                                                          boolean asPrimaryKey)
        为该表添加一个INT类型的自增列

        自增列强制要求为数字类型,非空,且为UNIQUE。

        注意:一个表只允许有一个自增列!

        Parameters:
        columnName - 列名
        asPrimaryKey - 是否为主键,若为false则设定为唯一键
        Returns:
        TableCreateBuilder
      • addAutoIncrementColumn

        default TableCreateBuilder addAutoIncrementColumn​(@NotNull
                                                          @NotNull java.lang.String columnName)
        为该表添加一个INT类型的自增主键列

        自增列强制要求为数字类型,非空,且为UNIQUE。

        注意:一个表只允许有一个自增列!

        Parameters:
        columnName - 列名
        Returns:
        TableCreateBuilder
      • setIndex

        default TableCreateBuilder setIndex​(@NotNull
                                            @NotNull java.lang.String columnName,
                                            @NotNull
                                            @NotNull IndexType type)
        设定表中的某列为索引或键。

        创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
        虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE 和DELETE。
        因此,请合理的设计索引。

        Parameters:
        type - 索引类型
        columnName - 索引包含的列
        Returns:
        TableCreateBuilder
      • setIndex

        TableCreateBuilder setIndex​(@NotNull
                                    @NotNull IndexType type,
                                    @Nullable
                                    @Nullable java.lang.String indexName,
                                    @NotNull
                                    @NotNull java.lang.String columnName,
                                    @NotNull
                                    @NotNull java.lang.String... moreColumns)
        设定表中的某列为索引或键。

        创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。
        虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE 和DELETE。
        因此,请合理的设计索引。

        Parameters:
        type - 索引类型
        indexName - 索引名称,缺省时将根据第一个索引列赋一个名称
        columnName - 索引包含的列
        moreColumns - 联合索引需要包含的列
        Returns:
        TableCreateBuilder
      • addForeignKey

        default TableCreateBuilder addForeignKey​(@NotNull
                                                 @NotNull java.lang.String tableColumn,
                                                 @NotNull
                                                 @NotNull java.lang.String foreignColumn)
        以本表位从表,为表中某列设定自参照外键(即自参照完整性)。

        外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。
        外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。
        主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。

        Parameters:
        tableColumn - 本表中的列
        foreignColumn - 外键关联表中对应的关联列,必须为目标表的主键,即 IndexType.PRIMARY_KEY
        Returns:
        TableCreateBuilder
      • addForeignKey

        default TableCreateBuilder addForeignKey​(@NotNull
                                                 @NotNull java.lang.String tableColumn,
                                                 @NotNull
                                                 @NotNull java.lang.String foreignTable,
                                                 @NotNull
                                                 @NotNull java.lang.String foreignColumn)
        以本表位从表,为表中某列设定外键。

        外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。
        外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。
        主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。

        Parameters:
        tableColumn - 本表中的列
        foreignTable - 外键关联主表,必须为已存在的表或本表,且必须有主键。
        foreignColumn - 外键关联主表中对应的关联列,须满足

        1. 为主表的主键,即 IndexType.PRIMARY_KEY

        2. 数据类型必须和所要建立主键的列的数据类型相同。

        Returns:
        TableCreateBuilder
      • addForeignKey

        default TableCreateBuilder addForeignKey​(@NotNull
                                                 @NotNull java.lang.String tableColumn,
                                                 @Nullable
                                                 @Nullable java.lang.String constraintName,
                                                 @NotNull
                                                 @NotNull java.lang.String foreignTable,
                                                 @NotNull
                                                 @NotNull java.lang.String foreignColumn)
        以本表位从表,为表中某列设定外键。

        外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。
        外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。
        主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。

        Parameters:
        tableColumn - 本表中的列
        constraintName - 约束名,缺省时将使用参数自动生成,如 fk_[tableColumn]_[foreignTable]
        foreignTable - 外键关联主表,必须为已存在的表或本表,且必须有主键。
        foreignColumn - 外键关联主表中对应的关联列,须满足

        1. 为主表的主键,即 IndexType.PRIMARY_KEY

        2. 数据类型必须和所要建立主键的列的数据类型相同。

        Returns:
        TableCreateBuilder
      • addForeignKey

        TableCreateBuilder addForeignKey​(@NotNull
                                         @NotNull java.lang.String tableColumn,
                                         @Nullable
                                         @Nullable java.lang.String constraintName,
                                         @NotNull
                                         @NotNull java.lang.String foreignTable,
                                         @NotNull
                                         @NotNull java.lang.String foreignColumn,
                                         @Nullable
                                         @Nullable ForeignKeyRule updateRule,
                                         @Nullable
                                         @Nullable ForeignKeyRule deleteRule)
        以本表位从表,为表中某列设定外键。

        外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。
        外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。
        主表删除某条记录时,从表中与之对应的记录也必须有相应的改变。

        Parameters:
        tableColumn - 本表中的列
        constraintName - 约束名,缺省时将使用参数自动生成,如 fk_[tableColumn]_[foreignTable]
        foreignTable - 外键关联主表,必须为已存在的表或本表,且必须有主键。
        foreignColumn - 外键关联主表中对应的关联列,须满足

        1. 为主表的主键,即 IndexType.PRIMARY_KEY

        2. 数据类型必须和所要建立主键的列的数据类型相同。

        updateRule - 在外键被更新时采用的规则,缺省时默认为ForeignKeyRule.RESTRICT
        deleteRule - 在外键被删除时采用的规则,缺省时默认为ForeignKeyRule.RESTRICT
        Returns:
        TableCreateBuilder
      • defaultTablesSettings

        default java.lang.String defaultTablesSettings()