【问题标题】: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。