Loading sql/schema_oracle.sql 0 → 100644 +131 −0 Original line number Diff line number Diff line -- ----------------------------------------------------- -- Table unicaen_utilisateur_role -- ----------------------------------------------------- CREATE SEQUENCE unicaen_utilisateur_role_id_seq NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0; CREATE TABLE unicaen_utilisateur_role ( id NUMBER(*,0) NOT NULL, role_id VARCHAR2(64) NOT NULL, libelle VARCHAR2(255) NOT NULL, description CLOB NOT NULL, is_default NUMBER(1) DEFAULT 0 NOT NULL, is_auto NUMBER(1) DEFAULT 0 NOT NULL, parent_id NUMBER(*,0), ldap_filter VARCHAR2(255), accessible_exterieur NUMBER(1) DEFAULT 1 NOT NULL, displayed NUMBER(1) DEFAULT 1 NOT NULL, CONSTRAINT pk_unicaen_role PRIMARY KEY (id), CONSTRAINT un_unicaen_role_role UNIQUE (role_id), CONSTRAINT fk_unicaen_role_parent FOREIGN KEY (parent_id) REFERENCES unicaen_utilisateur_role (id) DEFERRABLE INITIALLY IMMEDIATE ); CREATE INDEX ix_unicaen_role_parent ON unicaen_utilisateur_role (parent_id); -- ----------------------------------------------------- -- Table unicaen_utilisateur_user -- ----------------------------------------------------- CREATE SEQUENCE unicaen_utilisateur_user_id_seq NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0; CREATE TABLE unicaen_utilisateur_user ( id NUMBER(*, 0) NOT NULL, username VARCHAR2(255 CHAR) NOT NULL, display_name VARCHAR2(255 CHAR) NOT NULL, email VARCHAR2(255 CHAR) NULL, password VARCHAR2(128 CHAR) NOT NULL, state SMALLINT DEFAULT 1 NOT NULL, password_reset_token VARCHAR2(256) DEFAULT NULL, last_role_id NUMBER(*,0), CONSTRAINT pk_unicaen_user PRIMARY KEY (id), CONSTRAINT un_unicaen_user_username UNIQUE (username), CONSTRAINT un_unicaen_user_password_reset_token UNIQUE (password_reset_token), CONSTRAINT fk_unicaen_user_last_role FOREIGN KEY (last_role_id) REFERENCES unicaen_utilisateur_role(id) DEFERRABLE INITIALLY IMMEDIATE ); CREATE INDEX ix_unicaen_user_last_role ON unicaen_utilisateur_user (last_role_id); -- ----------------------------------------------------- -- Table unicaen_utilisateur_user_role_linker -- ----------------------------------------------------- CREATE SEQUENCE unicaen_utilisateur_user_role_linker_id_seq NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0; CREATE TABLE unicaen_utilisateur_user_role_linker ( id NUMBER(*,0) NOT NULL, user_id NUMBER(*,0) NOT NULL, role_id NUMBER(*,0) NOT NULL, CONSTRAINT pk_unicaen_user_role_linker PRIMARY KEY (id), CONSTRAINT un_unicaen_user_role_linker UNIQUE (user_id, role_id), CONSTRAINT fk_unicaen_user_role_linker_user FOREIGN KEY (user_id) REFERENCES unicaen_utilisateur_user (id) DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT fk_unicaen_user_role_linker_role FOREIGN KEY (role_id) REFERENCES unicaen_utilisateur_role (id) DEFERRABLE INITIALLY IMMEDIATE ); CREATE INDEX ix_unicaen_user_role_linker_user ON unicaen_utilisateur_user_role_linker (user_id); CREATE INDEX ix_unicaen_user_role_linker_role ON unicaen_utilisateur_user_role_linker (role_id); -- DATA INSERT INTO unicaen_utilisateur_user (id, username, email, display_name, password) WITH tmp AS ( SELECT 1, 'app' u, 'dsi.applications@unicaen.fr' e, 'Application' n, 'db' p FROM dual ) SELECT unicaen_utilisateur_id_seq.nextval, tmp.u, tmp.e, tmp.n, tmp.p FROM tmp; INSERT INTO unicaen_privilege_privilege_categorie (id, code, libelle, namespace, ordre) WITH tmp AS ( SELECT 1, 'utilisateur' c, 'Gestion des utilisateurs' l, 'UnicaenUtilisateur\Provider\Privilege' n, 1 o FROM dual ) SELECT unicaen_privilege_privilege_categorie_id_seq.nextval, tmp.c, tmp.l, tmp.n, tmp.o FROM tmp; INSERT INTO unicaen_privilege_privilege (id, categorie_id, code, libelle, ordre) WITH tmp AS ( SELECT 1, 1 ca, 'utilisateur_afficher' c, 'Rechercher et consulter un utilisateur' l, 1 o FROM dual UNION SELECT 2, 1 ca, 'utilisateur_ajouter' c, 'Ajouter un utilisateur' l, 2 o FROM dual UNION SELECT 3, 1 ca, 'utilisateur_changerstatus' c, 'Changer le statut d''un utilisateur' l, 3 o FROM dual UNION SELECT 4, 1 ca, 'utilisateur_modifierrole' c, 'Modifier les rôles attribués à un utilisateur' l, 4 o FROM dual ) SELECT unicaen_privilege_privilege_id_seq.nextval, unicaen_privilege_privilege_categorie_id_seq.currval, tmp.c, tmp.l, tmp.o FROM tmp; INSERT INTO unicaen_privilege_privilege_categorie (id, code, libelle, namespace, ordre) WITH tmp AS ( SELECT 1, 'role' c, 'Gestion des rôles' l, 'UnicaenUtilisateur\Provider\Privilege' n, 2 o FROM dual ) SELECT unicaen_privilege_privilege_categorie_id_seq.nextval, tmp.c, tmp.l, tmp.n, tmp.o FROM tmp; INSERT INTO unicaen_privilege_privilege (id, categorie_id, code, libelle, ordre) WITH tmp AS ( SELECT 1, 1 ca, 'role_afficher' c, 'Consulter les rôles' l, 1 o FROM dual UNION SELECT 2, 1 ca, 'role_modifier' c, 'Modifier un rôle' l, 2 o FROM dual UNION SELECT 3, 1 ca, 'role_effacer' c, 'Supprimer un rôle' l, 3 o FROM dual ) SELECT unicaen_privilege_privilege_id_seq.nextval, unicaen_privilege_privilege_categorie_id_seq.currval, tmp.c, tmp.l, tmp.o FROM tmp; No newline at end of file sql/schema_postgresql.sql 0 → 100644 +108 −0 Original line number Diff line number Diff line -- ----------------------------------------------------- -- TABLE UNICAEN_UTILISATEUR_ROLE -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_ROLE ( ID SERIAL PRIMARY KEY, ROLE_ID VARCHAR(64) NOT NULL, LIBELLE VARCHAR(255) NOT NULL, DESCRIPTION TEXT NOT NULL, IS_DEFAULT BOOLEAN DEFAULT false NOT NULL, IS_AUTO BOOLEAN DEFAULT false NOT NULL, PARENT_ID INTEGER, LDAP_FILTER VARCHAR(255) DEFAULT NULL::character varying, ACCESSIBLE_EXTERIEUR BOOLEAN DEFAULT true NOT NULL, DISPLAYED BOOLEAN DEFAULT true NOT NULL, CONSTRAINT FK_UNICAEN_ROLE_PARENT FOREIGN KEY (PARENT_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE ); CREATE UNIQUE INDEX UN_UNICAEN_ROLE_ROLE ON UNICAEN_UTILISATEUR_ROLE (ROLE_ID); CREATE INDEX IX_UNICAEN_ROLE_PARENT ON UNICAEN_UTILISATEUR_ROLE (PARENT_ID); -- ----------------------------------------------------- -- TABLE UNICAEN_UTILISATEUR_USER -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER ( ID SERIAL PRIMARY KEY, USERNAME VARCHAR(255) NOT NULL, DISPLAY_NAME VARCHAR(255) NOT NULL, EMAIL VARCHAR(255), PASSWORD VARCHAR(128) DEFAULT 'application'::character varying NOT NULL, STATE BOOLEAN DEFAULT true NOT NULL, PASSWORD_RESET_TOKEN VARCHAR(256), LAST_ROLE_ID INTEGER, CONSTRAINT FK_UNICAEN_USER_LAST_ROLE FOREIGN KEY (LAST_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE(ID) DEFERRABLE INITIALLY IMMEDIATE ); CREATE UNIQUE INDEX UN_UNICAEN_USER_USERNAME ON UNICAEN_UTILISATEUR_USER(USERNAME); CREATE UNIQUE INDEX UN_UNICAEN_USER_PASSWORD_RESET_TOKEN ON UNICAEN_UTILISATEUR_USER(PASSWORD_RESET_TOKEN); CREATE INDEX IX_UNICAEN_USER_LAST_ROLE ON UNICAEN_UTILISATEUR_USER(LAST_ROLE_ID); -- ----------------------------------------------------- -- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER_ROLE_LINKER ( ID SERIAL PRIMARY KEY, USER_ID INTEGER NOT NULL, ROLE_ID INTEGER NOT NULL, CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE ); CREATE UNIQUE INDEX UN_UNICAEN_USER_ROLE_LINKER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER(USER_ID, ROLE_ID); CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID); CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID); -- DATA INSERT INTO unicaen_utilisateur_user ( username, email, display_name, password) VALUES ('app', 'dsi.applications@unicaen.fr', 'Application', 'db'); INSERT INTO unicaen_privilege_privilege_categorie (code, libelle, namespace, ordre) VALUES ('utilisateur', 'Gestion des utilisateurs', 'UnicaenUtilisateur\Provider\Privilege', 1), ('role', 'Gestion des rôles', 'UnicaenUtilisateur\Provider\Privilege', 2), ON CONFLICT (code) DO UPDATE SET libelle=excluded.libelle, namespace=excluded.namespace, ordre=excluded.ordre; WITH d(code, lib, ordre) AS ( SELECT 'utilisateur_afficher', 'Consulter un utilisateur', 1 UNION SELECT 'utilisateur_ajouter', 'Ajouter un utilisateur', 2 UNION SELECT 'utilisateur_changerstatus', 'Changer le statut d''un utilisateur', 3 UNION SELECT 'utilisateur_modifierrole', 'Modifier les rôles attribués à un utilisateur', 4 ) INSERT INTO unicaen_privilege_privilege(categorie_id, code, libelle, ordre) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_privilege_categorie cp ON cp.CODE = 'utilisateur' ON CONFLICT (categorie_id, code) DO UPDATE SET libelle=excluded.libelle, ordre=excluded.ordre; WITH d(code, lib, ordre) AS ( SELECT 'role_afficher', 'Consulter les rôles', 1 UNION SELECT 'role_modifier', 'Modifier un rôle', 2 UNION SELECT 'role_effacer', 'Supprimer un rôle', 3 ) INSERT INTO unicaen_privilege_privilege(categorie_id, code, libelle, ordre) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_privilege_categorie cp ON cp.CODE = 'role' ON CONFLICT (categorie_id, code) DO UPDATE SET libelle=excluded.libelle, ordre=excluded.ordre; No newline at end of file Loading
sql/schema_oracle.sql 0 → 100644 +131 −0 Original line number Diff line number Diff line -- ----------------------------------------------------- -- Table unicaen_utilisateur_role -- ----------------------------------------------------- CREATE SEQUENCE unicaen_utilisateur_role_id_seq NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0; CREATE TABLE unicaen_utilisateur_role ( id NUMBER(*,0) NOT NULL, role_id VARCHAR2(64) NOT NULL, libelle VARCHAR2(255) NOT NULL, description CLOB NOT NULL, is_default NUMBER(1) DEFAULT 0 NOT NULL, is_auto NUMBER(1) DEFAULT 0 NOT NULL, parent_id NUMBER(*,0), ldap_filter VARCHAR2(255), accessible_exterieur NUMBER(1) DEFAULT 1 NOT NULL, displayed NUMBER(1) DEFAULT 1 NOT NULL, CONSTRAINT pk_unicaen_role PRIMARY KEY (id), CONSTRAINT un_unicaen_role_role UNIQUE (role_id), CONSTRAINT fk_unicaen_role_parent FOREIGN KEY (parent_id) REFERENCES unicaen_utilisateur_role (id) DEFERRABLE INITIALLY IMMEDIATE ); CREATE INDEX ix_unicaen_role_parent ON unicaen_utilisateur_role (parent_id); -- ----------------------------------------------------- -- Table unicaen_utilisateur_user -- ----------------------------------------------------- CREATE SEQUENCE unicaen_utilisateur_user_id_seq NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0; CREATE TABLE unicaen_utilisateur_user ( id NUMBER(*, 0) NOT NULL, username VARCHAR2(255 CHAR) NOT NULL, display_name VARCHAR2(255 CHAR) NOT NULL, email VARCHAR2(255 CHAR) NULL, password VARCHAR2(128 CHAR) NOT NULL, state SMALLINT DEFAULT 1 NOT NULL, password_reset_token VARCHAR2(256) DEFAULT NULL, last_role_id NUMBER(*,0), CONSTRAINT pk_unicaen_user PRIMARY KEY (id), CONSTRAINT un_unicaen_user_username UNIQUE (username), CONSTRAINT un_unicaen_user_password_reset_token UNIQUE (password_reset_token), CONSTRAINT fk_unicaen_user_last_role FOREIGN KEY (last_role_id) REFERENCES unicaen_utilisateur_role(id) DEFERRABLE INITIALLY IMMEDIATE ); CREATE INDEX ix_unicaen_user_last_role ON unicaen_utilisateur_user (last_role_id); -- ----------------------------------------------------- -- Table unicaen_utilisateur_user_role_linker -- ----------------------------------------------------- CREATE SEQUENCE unicaen_utilisateur_user_role_linker_id_seq NOCYCLE START WITH 1 INCREMENT BY 1 MINVALUE 0; CREATE TABLE unicaen_utilisateur_user_role_linker ( id NUMBER(*,0) NOT NULL, user_id NUMBER(*,0) NOT NULL, role_id NUMBER(*,0) NOT NULL, CONSTRAINT pk_unicaen_user_role_linker PRIMARY KEY (id), CONSTRAINT un_unicaen_user_role_linker UNIQUE (user_id, role_id), CONSTRAINT fk_unicaen_user_role_linker_user FOREIGN KEY (user_id) REFERENCES unicaen_utilisateur_user (id) DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT fk_unicaen_user_role_linker_role FOREIGN KEY (role_id) REFERENCES unicaen_utilisateur_role (id) DEFERRABLE INITIALLY IMMEDIATE ); CREATE INDEX ix_unicaen_user_role_linker_user ON unicaen_utilisateur_user_role_linker (user_id); CREATE INDEX ix_unicaen_user_role_linker_role ON unicaen_utilisateur_user_role_linker (role_id); -- DATA INSERT INTO unicaen_utilisateur_user (id, username, email, display_name, password) WITH tmp AS ( SELECT 1, 'app' u, 'dsi.applications@unicaen.fr' e, 'Application' n, 'db' p FROM dual ) SELECT unicaen_utilisateur_id_seq.nextval, tmp.u, tmp.e, tmp.n, tmp.p FROM tmp; INSERT INTO unicaen_privilege_privilege_categorie (id, code, libelle, namespace, ordre) WITH tmp AS ( SELECT 1, 'utilisateur' c, 'Gestion des utilisateurs' l, 'UnicaenUtilisateur\Provider\Privilege' n, 1 o FROM dual ) SELECT unicaen_privilege_privilege_categorie_id_seq.nextval, tmp.c, tmp.l, tmp.n, tmp.o FROM tmp; INSERT INTO unicaen_privilege_privilege (id, categorie_id, code, libelle, ordre) WITH tmp AS ( SELECT 1, 1 ca, 'utilisateur_afficher' c, 'Rechercher et consulter un utilisateur' l, 1 o FROM dual UNION SELECT 2, 1 ca, 'utilisateur_ajouter' c, 'Ajouter un utilisateur' l, 2 o FROM dual UNION SELECT 3, 1 ca, 'utilisateur_changerstatus' c, 'Changer le statut d''un utilisateur' l, 3 o FROM dual UNION SELECT 4, 1 ca, 'utilisateur_modifierrole' c, 'Modifier les rôles attribués à un utilisateur' l, 4 o FROM dual ) SELECT unicaen_privilege_privilege_id_seq.nextval, unicaen_privilege_privilege_categorie_id_seq.currval, tmp.c, tmp.l, tmp.o FROM tmp; INSERT INTO unicaen_privilege_privilege_categorie (id, code, libelle, namespace, ordre) WITH tmp AS ( SELECT 1, 'role' c, 'Gestion des rôles' l, 'UnicaenUtilisateur\Provider\Privilege' n, 2 o FROM dual ) SELECT unicaen_privilege_privilege_categorie_id_seq.nextval, tmp.c, tmp.l, tmp.n, tmp.o FROM tmp; INSERT INTO unicaen_privilege_privilege (id, categorie_id, code, libelle, ordre) WITH tmp AS ( SELECT 1, 1 ca, 'role_afficher' c, 'Consulter les rôles' l, 1 o FROM dual UNION SELECT 2, 1 ca, 'role_modifier' c, 'Modifier un rôle' l, 2 o FROM dual UNION SELECT 3, 1 ca, 'role_effacer' c, 'Supprimer un rôle' l, 3 o FROM dual ) SELECT unicaen_privilege_privilege_id_seq.nextval, unicaen_privilege_privilege_categorie_id_seq.currval, tmp.c, tmp.l, tmp.o FROM tmp; No newline at end of file
sql/schema_postgresql.sql 0 → 100644 +108 −0 Original line number Diff line number Diff line -- ----------------------------------------------------- -- TABLE UNICAEN_UTILISATEUR_ROLE -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_ROLE ( ID SERIAL PRIMARY KEY, ROLE_ID VARCHAR(64) NOT NULL, LIBELLE VARCHAR(255) NOT NULL, DESCRIPTION TEXT NOT NULL, IS_DEFAULT BOOLEAN DEFAULT false NOT NULL, IS_AUTO BOOLEAN DEFAULT false NOT NULL, PARENT_ID INTEGER, LDAP_FILTER VARCHAR(255) DEFAULT NULL::character varying, ACCESSIBLE_EXTERIEUR BOOLEAN DEFAULT true NOT NULL, DISPLAYED BOOLEAN DEFAULT true NOT NULL, CONSTRAINT FK_UNICAEN_ROLE_PARENT FOREIGN KEY (PARENT_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE ); CREATE UNIQUE INDEX UN_UNICAEN_ROLE_ROLE ON UNICAEN_UTILISATEUR_ROLE (ROLE_ID); CREATE INDEX IX_UNICAEN_ROLE_PARENT ON UNICAEN_UTILISATEUR_ROLE (PARENT_ID); -- ----------------------------------------------------- -- TABLE UNICAEN_UTILISATEUR_USER -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER ( ID SERIAL PRIMARY KEY, USERNAME VARCHAR(255) NOT NULL, DISPLAY_NAME VARCHAR(255) NOT NULL, EMAIL VARCHAR(255), PASSWORD VARCHAR(128) DEFAULT 'application'::character varying NOT NULL, STATE BOOLEAN DEFAULT true NOT NULL, PASSWORD_RESET_TOKEN VARCHAR(256), LAST_ROLE_ID INTEGER, CONSTRAINT FK_UNICAEN_USER_LAST_ROLE FOREIGN KEY (LAST_ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE(ID) DEFERRABLE INITIALLY IMMEDIATE ); CREATE UNIQUE INDEX UN_UNICAEN_USER_USERNAME ON UNICAEN_UTILISATEUR_USER(USERNAME); CREATE UNIQUE INDEX UN_UNICAEN_USER_PASSWORD_RESET_TOKEN ON UNICAEN_UTILISATEUR_USER(PASSWORD_RESET_TOKEN); CREATE INDEX IX_UNICAEN_USER_LAST_ROLE ON UNICAEN_UTILISATEUR_USER(LAST_ROLE_ID); -- ----------------------------------------------------- -- TABLE UNICAEN_UTILISATEUR_USER_ROLE_LINKER -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS UNICAEN_UTILISATEUR_USER_ROLE_LINKER ( ID SERIAL PRIMARY KEY, USER_ID INTEGER NOT NULL, ROLE_ID INTEGER NOT NULL, CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_USER FOREIGN KEY (USER_ID) REFERENCES UNICAEN_UTILISATEUR_USER (ID) DEFERRABLE INITIALLY IMMEDIATE, CONSTRAINT FK_UNICAEN_USER_ROLE_LINKER_ROLE FOREIGN KEY (ROLE_ID) REFERENCES UNICAEN_UTILISATEUR_ROLE (ID) DEFERRABLE INITIALLY IMMEDIATE ); CREATE UNIQUE INDEX UN_UNICAEN_USER_ROLE_LINKER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER(USER_ID, ROLE_ID); CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_USER ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (USER_ID); CREATE INDEX IX_UNICAEN_UTILISATEUR_ROLE_LINKER_ROLE ON UNICAEN_UTILISATEUR_USER_ROLE_LINKER (ROLE_ID); -- DATA INSERT INTO unicaen_utilisateur_user ( username, email, display_name, password) VALUES ('app', 'dsi.applications@unicaen.fr', 'Application', 'db'); INSERT INTO unicaen_privilege_privilege_categorie (code, libelle, namespace, ordre) VALUES ('utilisateur', 'Gestion des utilisateurs', 'UnicaenUtilisateur\Provider\Privilege', 1), ('role', 'Gestion des rôles', 'UnicaenUtilisateur\Provider\Privilege', 2), ON CONFLICT (code) DO UPDATE SET libelle=excluded.libelle, namespace=excluded.namespace, ordre=excluded.ordre; WITH d(code, lib, ordre) AS ( SELECT 'utilisateur_afficher', 'Consulter un utilisateur', 1 UNION SELECT 'utilisateur_ajouter', 'Ajouter un utilisateur', 2 UNION SELECT 'utilisateur_changerstatus', 'Changer le statut d''un utilisateur', 3 UNION SELECT 'utilisateur_modifierrole', 'Modifier les rôles attribués à un utilisateur', 4 ) INSERT INTO unicaen_privilege_privilege(categorie_id, code, libelle, ordre) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_privilege_categorie cp ON cp.CODE = 'utilisateur' ON CONFLICT (categorie_id, code) DO UPDATE SET libelle=excluded.libelle, ordre=excluded.ordre; WITH d(code, lib, ordre) AS ( SELECT 'role_afficher', 'Consulter les rôles', 1 UNION SELECT 'role_modifier', 'Modifier un rôle', 2 UNION SELECT 'role_effacer', 'Supprimer un rôle', 3 ) INSERT INTO unicaen_privilege_privilege(categorie_id, code, libelle, ordre) SELECT cp.id, d.code, d.lib, d.ordre FROM d JOIN unicaen_privilege_privilege_categorie cp ON cp.CODE = 'role' ON CONFLICT (categorie_id, code) DO UPDATE SET libelle=excluded.libelle, ordre=excluded.ordre; No newline at end of file