MySQL 查找指定表名的表的主键

原理

sql 复制代码
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE TABLE_NAME = 表名 AND CONSTRAINT_NAME = 'PRIMARY'

方法

java 复制代码
public static String getPk(String tableName) {
    String sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = ? AND CONSTRAINT_NAME = 'PRIMARY'";
    PreparedStatement ps = null;
    ResultSet rs = null;
    String res = null;
    try {
        final Connection conn = JdbcUtil.getConnection();
        ps = conn.prepareStatement(sql);
        ps.setString(1, tableName);
        rs = ps.executeQuery();
        if (rs.next()) {
            res = rs.getString("COLUMN_NAME");
        }
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        JdbcUtil.release(ps, rs);
    }
    return res;
}
相关推荐
L0016 小时前
MySQL5.7 DATE 字段无法设置默认日期?用触发器搞定|个人任务清单项目实战
mysql
不像程序员的程序媛7 小时前
导出mysql数据结构
数据库·mysql
鱼很腾apoc8 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
郭萌6969 小时前
多商户平台的分销佣金:为什么同一笔订单,换个时间跑会算出另一个人
mysql·php
库库的数据库笔记9 小时前
金融核心交易系统的数据库国产信创改造该如何做?
大数据·数据库·分布式·mysql·oracle·金融·数据库架构
Linux实战笔记9 小时前
MySQL 索引失效的三种典型场景与 EXPLAIN 分析
mysql·索引失效·explain·执行计划·sql 调优
这个DBA有点耶9 小时前
连接数没满,应用却连不上数据库——TCP backlog溢出与somaxconn的隐藏限制
数据库·mysql·代码规范
小羊没烦恼!10 小时前
C#综合揭秘——Entity Framework 并发处理详解
java·开发语言·前端·javascript·数据库·mysql·c#
flytalei11 小时前
从 Docker Compose 到 K3s:逐浪博客 MySQL 数据迁移实战与一致性验证
mysql·docker·容器
SL_staff12 小时前
3分钟上线新规则:业务人员拖拽完成合同超期自动暂停服务
java·mysql·全栈