posgresql数据库中表字段批量添加默认值

背景:我的postgresql数据库中有一个模式,需要把这个模式下所有的表中字段类型为int2,in4,int8,numeric的字段默认值设置为0,通过编写存储过程的方式实现这一需求。

DO $$ 
DECLARE 
  r RECORD;
BEGIN 
  FOR r IN SELECT table_name, column_name, data_type 
FROM information_schema.columns 
WHERE table_schema = 'db_yw' --这里填写模式名称
AND (data_type = 'numeric' OR data_type like '%int%')  --z需要修改的字段类型
AND column_name NOT IN ('pk_uid', 'id', 'l_id')
  LOOP 
    EXECUTE 'ALTER TABLE ' || r.table_name || ' ALTER COLUMN ' || r.column_name || ' SET DEFAULT 0'; 
  END LOOP; 
END $$;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以在Java中使用JDBC API来向数据库中插入数据,并在插入数据时为表字段设置默认值。具体步骤如下: 1. 建立JDBC连接,获取Connection对象。 2. 创建一个PreparedStatement对象,并使用SQL语句创建表。 3. 使用PreparedStatement对象的setXXX()方法为表字段设置默认值,其中XXX表示数据类型,如setString()、setInt()等。 4. 调用PreparedStatement对象的executeUpdate()方法来执行更新操作,将数据插入到数据库中。 下面是一个示例代码,演示如何使用Java JDBC向数据库中插入数据并为表字段设置默认值: ```java import java.sql.*; public class DBInsertDemo { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false"; String user = "root"; String password = "password"; String insertSql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)"; try (Connection conn = DriverManager.getConnection(url, user, password); PreparedStatement pstmt = conn.prepareStatement(insertSql)) { // 设置表字段默认值 pstmt.setString(1, "John Doe"); pstmt.setInt(2, 30); pstmt.setString(3, "[email protected]"); // 执行插入操作 int rowsAffected = pstmt.executeUpdate(); System.out.println(rowsAffected + " rows affected."); } catch (SQLException ex) { ex.printStackTrace(); } } } ``` 在上面的示例中,我们使用PreparedStatement对象的setXXX()方法为表字段设置默认值,然后执行executeUpdate()方法将数据插入到数据库中。注意,这里使用了try-with-resources语句来自动关闭连接和PreparedStatement对象,以确保资源被正确地释放。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值