gpt4 book ai didi

mysql - JOOQ MySQL TEXT 数据类型

转载 作者:行者123 更新时间:2023-11-29 02:10:01 26 4
gpt4 key购买 nike

我正在尝试使用 JOOQ 生成这个简单的 SQL,但由于某种原因我无法完成它。

CREATE TABLE T (
F TEXT
);

我希望它是这样的

dsl.createTable(name("T"))
.column("F", MySQLDataType.TEXT);

不幸的是,MySQLDataType 已弃用(不要直接从客户端代码引用此类型。在初始化 SQLDataType 类之前引用此类型可能会导致死锁!)。所以我尝试了

dsl.createTable(name("T"))
.column(field("F TEXT"));

但我得到的是以下 SQL,这是不合法的。

CREATE TABLE `T` (F text other null );

有什么提示吗?

最佳答案

作为documentation

Use the corresponding SQLDataType instead.

对于 MySQL TEXT 数据类型,您可以使用 .column("ColumnName", SQLDataType.CLOB)

来自 MySQL documentation

The four TEXT (CLOB) types are TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT. These differ only in the maximum length of the values they can hold.

如果您使用具有供应商特定长度的 SQLDataType.CLOB(LENGTH),您将得到 TINYTEXTMEDIUMTEXTLONGTEXT

请注意,MySQL 将 CLOB 称为 TEXT

使用示例

SQLDataType.INTEGER.identity(true)        // INTEGER Primary key
SQLDataType.VARCHAR(4095).nullable(false) // VARCHAR(4095) NOT NULL
SQLDataType.CHAR(10) // CHAR(10)
SQLDataType.BLOB // BLOB
SQLDataType.CLOB) // TEXT, same as blob, but with character encoding associated
SQLDataType.CLOB(16777215) // MEDIUMTEXT
SQLDataType.CLOB(4294967295) // LONGTEXT

关于mysql - JOOQ MySQL TEXT 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54931411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com