选择所有具有匹配列名的表

Posted

技术标签:

【中文标题】选择所有具有匹配列名的表【英文标题】:Select all tables that have matching column name 【发布时间】:2019-08-21 18:07:36 【问题描述】:

是否有一种方法可以使用 UCANACES 对数据库中与特定名称匹配的所有列进行选择和执行查询

我已经尝试使用在Find all tables that have X column name 找到的 mysql 方法

String sql = "SELECT DISTINCT table_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name= 'CID'";



        ResultSet rs = readID.executeQuery(sql);
        System.out.println("This plugin has successfully connected to the database...");
        do 
            userInput2 = JOptionPane.showInputDialog(null,"HIPAA Main Menu \n1. Encrypt the database. \n2. Decrypt the database.\n3. Exit the program.\n(Make a selection by entering 1, 2, or 3)");
            choice = Integer.parseInt(userInput2);
            switch (choice) 
                case 1 :
                    while (rs.next()) 
                        ID = rs.getString("CID");
                        rs.updateString("CID", encodedID(ID,aesKey,cipher));
                        rs.updateRow();
                        x++;
                    
                    dbConnection.commit();

ResultSet rs = readID.executeQuery(sql);

我希望代码连接到数据库中任何名为 CID 的列,然后获取列中的字符串,但我收到以下错误...

此插件已成功连接数据库... net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc:::4.0.4 未找到列:CID 在 net.ucanaccess.jdbc.UcanaccessResultSet.getString(UcanaccessResultSet.java:782) 在 Hipaa.main(Hipaa.java:63) 引起:net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.4 Column not found: CID 在 net.ucanaccess.jdbc.UcanaccessResultSet.getObject(UcanaccessResultSet.java:649) 在 net.ucanaccess.jdbc.UcanaccessResultSet.getString(UcanaccessResultSet.java:776) ... 1 更多

【问题讨论】:

您确定可以使用 UCanAccess 连接到 MySQL 数据库!?! 【参考方案1】:

尝试将此行更改为:

String sql = "SELECT DISTINCT table_name FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name= 'CID'";

然后尝试再次运行它 希望这会奏效

【讨论】:

以上是关于选择所有具有匹配列名的表的主要内容,如果未能解决你的问题,请参考以下文章

如何从laravel中的表中选择所有列名?

从两个表中选择不匹配的列值

我想显示所有具有指定列名的表

如何在 MySQL 中找到所有具有特定列名的表?

如何在 Teradata 数据库中查找所有具有特定列名的表?

如何使用不同的表和不同的列名连接多个查询