【问题标题】:Default value depending on column type mysql默认值取决于列类型 mysql
【发布时间】:2020-08-11 14:45:24
【问题描述】:

是否有某种方法可以根据其类型在 MySQL 中将 DEFAULT 值设置为列(就像 Java 中的原始类型变量一样)?

例如,数字类型为 0,VARCHAR 为空字符串,布尔型为 FALSE 等。

或者如何在我的 Java 程序中获取 mysql 类型的默认值并手动设置它而不需要一千个 if 语句? (我使用 JDBC 来处理 DB)。

【问题讨论】:

标签: java mysql sql database jdbc


【解决方案1】:

是的,您可以为 CREATE/ALTER TABLE 语句中的列设置默认值:

CREATE TABLE Employee (
    ID bigint NOT NULL AUTO_INCREMENT,
    Name varchar(255) DEFAULT '',
    Age int DEFAULT 21,
    Location varchar(255) DEFAULT 'London',
    Joining_Date DATETIME DEFAULT CURRENT_TIMESTAMP()
);

或者,如果你使用JPA实体映射到表,你可以设置columnDefinition参数:

@Column(name = "Location" columnDefinition="DEFAULT 'London'")
private String location;

至于您关于通过 JDBC 检索默认设置的问题 - 也可以通过 DatabaseMetadata 类的方法 getColumns read column COLUMN_DEF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多