postgreSQL 查询 属性列 和主键

 SELECT
        A.ordinal_position,
        A.column_name,
        CASE A.is_nullable WHEN 'NO' THEN 0 ELSE 1 END AS is_nullable,
        A.data_type,
        coalesce(A.character_maximum_length, A.numeric_precision, -1) as length,
        A.numeric_scale,
        CASE WHEN length(B.attname) > 0 THEN 1 ELSE 0 END AS is_pk
        FROM
        information_schema.columns A
        LEFT JOIN (
        SELECT
        pg_attribute.attname
        FROM
        pg_index,
        pg_class,
        pg_attribute
        WHERE
        pg_class.relname = 'BJHCST_index'
        AND pg_index.indisunique = true
        AND pg_index.indrelid = pg_class.oid
        AND pg_attribute.attrelid = pg_class.oid
        AND pg_attribute.attnum = ANY (pg_index.indkey)
        ) B ON A.column_name = b.attname
        WHERE
        A.table_schema = 'public'
        AND A.table_name = 'BJHCST_index'
        ORDER BY
        ordinal_position ASC;

属性值域约束是数据库中对数据类型、数据范围或者数据值的限制。在PostgreSQL中,可以通过数据类型定义和约束条件来实现属性值域约束,以保证数据的准确性和一致性。 在PostgreSQL中,属性值域约束通常有以下几种实现方式: 1. 数据类型:通过定义字段的数据类型,如整数(integer)、文本(text)、布尔(boolean)、日期(date)等,可以限制该字段可以接受的值的类型。例如,如果字段定义为整数类型,则不允许输入字符串类型的值。 2. 检查约束(CHECK):通过CHECK约束可以指定字段的值必须满足的条件。CHECK约束可以包含复杂的条件达式,可以对同一中的多个字段值进行关联校验。 例如,为一个名为age的整数字段添加一个检查约束,限定其值必须在1到100之间: ```sql CHECK (age >= 1 AND age <= 100) ``` 3. 唯一约束(UNIQUE):确保一个中的一个或一组中的值是唯一的,即中没有两行的这些具有相同的值。 例如,为一个名为email的文本字段添加唯一约束: ```sql UNIQUE (email) ``` 4. 主键约束(PRIMARY KEY):指定一个或一组作为主键,其值必须唯一且非空。通常用于唯一标识中的每一行数据。 例如,为一个名为id的字段添加主键约束: ```sql PRIMARY KEY (id) ``` 5. 外键约束(FOREIGN KEY):用于关联两个,并确保参照完整性。外键字段的值必须是参照中某个主键字段或唯一字段的值。 例如,创建一个名为user_id的外键约束,参照另一个主键id: ```sql FOREIGN KEY (user_id) REFERENCES other_table(id) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值