【问题标题】:UUID not valid at this position (Mysql workbench)UUID 在此位置无效(Mysql 工作台)
【发布时间】:2019-12-06 11:34:44
【问题描述】:

我试图创建一个表,在此我使用 id 属性作为 UUID,但它显示错误,它在这个位置无效,它期待其他东西

CREATE TABLE  account (
a_id                    UUID                PRIMARY KEY,
a_hash                  VARCHAR(66)         NOT NULL,
a_email                 VARCHAR(500)        NOT NULL,
a_password              VARCHAR(60)         NOT NULL,
a_verification_key      UUID                NOT NULL,
a_disabled              BOOLEAN             DEFAULT FALSE NOT NULL,
a_verified              BOOLEAN             DEFAULT FALSE NOT NULL,
a_role                  VARCHAR(20)         NOT NULL,
a_created_at            TIMESTAMP           DEFAULT NOW() NOT NULL

);

这里a_id字段是UUID类型,a_verification_key也是UUID 它在 mysql 工作台中给了我错误

【问题讨论】:

  • 你使用的是哪个版本的mysql db???
  • UUID 是函数而非数据类型 - 尝试搜索 mysql uuid。
  • 您将数据类型从 UUID 更改为 VARCHAR(),因为 UUID 可以用作数据类型
  • @scaisEdge 我使用的是 8.0.13(版本)
  • @Patel Romil 你说我需要删除这个 UUID 并更改为 varchar

标签: mysql hibernate spring-boot spring-data-jpa spring-jdbc


【解决方案1】:

您可以使用 UUID,指定 columnDefinitionVARCHAR(255)CHAR(16)BINARY(16) 使用 @Column,这样您就可以使用 UUID 的功能。您可以根据您的要求更改 strategygenerator

@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "a_id", columnDefinition = "VARCHAR(255)")
private UUID a_id;

DiscussionFunction UUID

【讨论】:

    猜你喜欢
    • 2020-07-21
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    • 2022-11-19
    相关资源
    最近更新 更多