java - 默认值取决于列类型 mysql

标签 java mysql sql database jdbc

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

例如,0 表示数字类型,VARCHAR 表示空字符串,FALSE 表示 boolean 值等。

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

最佳答案

是的,您可以在 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 .

关于java - 默认值取决于列类型 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61469160/

相关文章:

SQL Server : Insert INTO Statement syntax

Java String - 如何制作将字符串添加到字符串中的函数?

c# - 如何以编程方式与 Java 或 C# 中的软件设备驱动程序进行通信?

java - Apache 弗林克 : Wierd FlatMap behaviour

Mysql全文搜索跨多个表的相关性

mysql - 按逗号对列的值进行分组,而不使用 GROUP_CONCAT

mysql - 带额外列的 SQL PK 查找

针对特定场景的 SQL 内部/子组明智查询

java - 如何从网页中提取特定文本?

sql - 复制 MySQL 数据库的最简单方法?