PostgreSQL插入数组多对多关系

PostgreSQL insert array many-to-many relationship

让多个用户属于多个组。

编写一个函数,创建一个包含 name 和用户列表的组。

CREATE FUNCTION groups_create(varchar(50), bigint[]) RETURNS SETOF bigint AS
$$
    WITH g AS (
        INSERT INTO groups (name)
        VALUES ()
        RETURNING id
    ), gm AS (
        INSERT INTO group_members
        SELECT id, unnest() FROM g
    )
    SELECT id FROM g
$$
LANGUAGE SQL;

http://sqlfiddle.com/#!15/9e408/9