• Superset 二次开发之PostgreSQL 数据库DDL使用


    1. CREATE TABLE IF NOT EXISTS public.slice_user
    2. (
    3. id integer NOT NULL DEFAULT nextval('slice_user_id_seq'::regclass),
    4. user_id integer,
    5. slice_id integer,
    6. CONSTRAINT slice_user_pkey PRIMARY KEY (id),
    7. CONSTRAINT fk_slice_user_slice_id_slices FOREIGN KEY (slice_id)
    8. REFERENCES public.slices (id) MATCH SIMPLE
    9. ON UPDATE NO ACTION
    10. ON DELETE CASCADE,
    11. CONSTRAINT fk_slice_user_user_id_ab_user FOREIGN KEY (user_id)
    12. REFERENCES public.ab_user (id) MATCH SIMPLE
    13. ON UPDATE NO ACTION
    14. ON DELETE CASCADE
    15. )
    16. TABLESPACE pg_default;
    17. ALTER TABLE IF EXISTS public.slice_user
    18. OWNER to superset_test;
    • 表名和模式:表名为slice_user,存放在public模式中。

    • 列定义

      • id整数类型,非空,默认值为序列slice_user_id_seq的下一个值。

      • user_id:整数类型。

      • slice_id:整数类型。

    • 主键约束

      • slice_user_pkey主键约束,作用于id列,确保每行的id是唯一的。

    • 外键约束

      • fk_slice_user_slice_id_slices:外键约束,slice_id引用public.slices表的id列。约束条件为:

        • ON UPDATE NO ACTION:当引用的slices表中的id更新时,不采取任何动作。

        • ON DELETE CASCADE:当引用的slices表中的id删除时,自动删除slice_user表中对应的行。

      • fk_slice_user_user_id_ab_user:外键约束,user_id引用public.ab_user表的id列。约束条件为:

        • ON UPDATE NO ACTION:当引用的ab_user表中的id更新时,不采取任何动作。

        • ON DELETE CASCADE:当引用的ab_user表中的id删除时,自动删除slice_user表中对应的行。

    • 表空间TABLESPACE pg_default表示表存储在默认表空间中。

    • 修改表所有者:public.slice_user表的所有者更改为superset_test用户


    CONSTRAINT用于定义数据库表中的约束条件,这些约束用于确保数据的一致性和完整性。约束条件可以应用于表中的列或整个表。常见的约束类型包括PRIMARY KEYFOREIGN KEYUNIQUECHECKNOT NULL

    1. PRIMARY KEY 约束

    作用:指定表中的一个或多个列作为主键。主键的值必须唯一且非空。一个表只能有一个主键。

    示例

    CONSTRAINT slice_user_pkey PRIMARY KEY (id)

    解释:slice_user_pkey约束指定id列为主键,确保每个id值在表中是唯一且非空的。

    2. FOREIGN KEY 约束

    作用:指定一个或多个列作为外键,这些列引用另一表的主键。外键用于确保引用完整性,即确保在引用表中存在对应的值。

    示例:

    CONSTRAINT fk_slice_user_slice_id_slices FOREIGN KEY (slice_id)

    REFERENCES public.slices (id) MATCH SIMPLE
    ON UPDATE NO ACTION
    ON DELETE CASCADE

    解释

    • fk_slice_user_slice_id_slices约束指定slice_id列为外键,引用public.slices表的id列。
    • MATCH SIMPLE表示在大多数情况下,只要引用的列值相等就满足约束条件。
    • ON UPDATE NO ACTION:当public.slices表中的id更新时,不对slice_user表中的数据进行任何操作。
    • ON DELETE CASCADE:当public.slices表中的id删除时,自动删除slice_user表中引用该id的行。

    3. UNIQUE 约束

    作用:确保列中的所有值是唯一的,允许空值,但空值必须唯一。

    示例

    CONSTRAINT unique_user_email UNIQUE (email)

    解释:假设在users表中有一列emailunique_user_email约束确保每个用户的电子邮件地址是唯一的。

    4. CHECK 约束

    作用:确保列中的值符合指定的条件,可以用于验证数据范围、格式等。

    示例

    CONSTRAINT check_user_age CHECK (age >= 18)

    解释:假设在users表中有一列agecheck_user_age约束确保用户的年龄必须大于或等于18。

    5. NOT NULL 约束

    作用:确保列中的值不为空。

    示例

    name VARCHAR(255) NOT NULL

    解释:假设在users表中有一列nameNOT NULL约束确保每个用户的名字不能为空。

  • 相关阅读:
    ESD门禁闸机系统的功能说明
    悲观模式下分库分表合并迁移
    8b10b 64b/66b/ 究竟是什么作用呢?
    超算云平台在线功能Q-Flow、Q-Studio V2.1版本升级,web端在线建模+DFT计算
    基于ATL的Com服务注册后被调用,CoCreateInstance返回0x80080005,服务启动失败
    Supervisor - 用户进程监控利器
    Java-钉钉订阅事件
    音乐制作软件 Studio One 6 mac中文版软件特点
    TOPS是每秒一万亿次操作
    【笔记】css更改hr标签颜色
  • 原文地址:https://blog.csdn.net/u013985879/article/details/139751650