小编xon*_*nya的帖子

PostgreSQL:约束名称不一定是唯一的

我正在尝试列出模式中的所有外键,并为每个键列出所涉及的列。所以我正在查询pg_catalog.pg_constraintinformation_schema.columns表。

我需要一种方法来区分键,进行第二次查询并检索键列列表。

我想使用约束名称(表中的connamepg_catalog.pg_constraint),但是关于 pg_constraintPostgreSQL 文档说约束名称不一定是唯一的!为什么?我在文档中找不到有关此事实的其他信息。

情侣connamespace+conname独一无二吗?

这是我的查询:

从给定的模式中检索外键列表:

SELECT
conname AS constraint_name,
conrelid::regclass AS referring_table, 
confrelid::regclass AS referenced_table
FROM pg_catalog.pg_constraint
WHERE contype = 'f' AND ((conrelid::regclass || '' LIKE '<my_schema_name>.%') OR (confrelid::regclass || '' LIKE '<my_schema_name>.%'))
Run Code Online (Sandbox Code Playgroud)

检索给定键的列列表:

SELECT
c.column_name AS key_column
FROM information_schema.columns c
JOIN pg_catalog.pg_constraint r ON (c.table_schema || '.' || c.table_name) = (r.conrelid::regclass || '')
WHERE r.conname = '<my_constraint_name>'
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

postgresql

4
推荐指数
1
解决办法
1172
查看次数

为什么Java Enumeration不按顺序返回属性列表?

我正在创建一个可以更改语言的简单程序,我将转换字符串数组中myBundle.properties文件中的属性列表.

这是myBundle.properties文件:

 #default
 test1=Hello1
 test2=Hello2
 test3=Hello3
 test4=Hello4
 test5=Hello5
 test6=Hello6
Run Code Online (Sandbox Code Playgroud)

这是Java代码:

import java.util.*;

class BundleTest {

    BundleTest() {
        String[] s = returnStringArray(Locale.ENGLISH);
        for(int i=0; i<s.length; i++) {
            System.out.println(s[i]);
        }
    }

    private String[] returnStringArray(Locale language) {
        try {
            ResourceBundle labels = ResourceBundle.getBundle("myBundle", language);
            Enumeration<String> keys = labels.getKeys();
            Vector v = new Vector();
            String key = null;
            while (keys.hasMoreElements()) {
                v.add(keys.nextElement());
            }
            String[] s = new String[v.size()];
            for(int i=0; i<s.length; i++) {
                s[i] = (String)v.elementAt(i);
            }
            return s;
        } catch (MissingResourceException mre) { …
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
1
解决办法
2232
查看次数

标签 统计

java ×1

postgresql ×1