Merge remote-tracking branch 'refs/remotes/origin/master'
This commit is contained in:
commit
30707747dc
@ -7,9 +7,9 @@ build: \
|
||||
$(DIR_BUILD)/00_drop.sql \
|
||||
$(DIR_BUILD)/01_create.sql \
|
||||
$(DIR_BUILD)/02_insert.sql \
|
||||
$(DIR_BUILD)/04_update.sql \
|
||||
$(DIR_BUILD)/05_functions.sql
|
||||
# $(DIR_BUILD)/03_select.sql \
|
||||
# $(DIR_BUILD)/04_update.sql
|
||||
|
||||
generate_data:
|
||||
python3 generate_data.py
|
||||
|
@ -384,3 +384,66 @@ CREATE OR REPLACE VIEW nb_modele_par_membre AS
|
||||
WHERE membres.id_membre IS NOT NULL
|
||||
GROUP BY membres.id_membre
|
||||
);
|
||||
|
||||
-- ============================================================================
|
||||
-- Triggers.
|
||||
-- ============================================================================
|
||||
|
||||
-- A noter should be between 0 and 5.
|
||||
CREATE OR REPLACE FUNCTION note_veryfier()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
IF NEW.note_noter < 0 OR NEW.note_noter > 5 THEN
|
||||
RAISE EXCEPTION 'You should give a note between 0 and 5';
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER note_veryfier
|
||||
BEFORE INSERT OR UPDATE ON noter
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION note_veryfier();
|
||||
|
||||
-- To delete all the messages from a message thread.
|
||||
CREATE OR REPLACE FUNCTION delete_messages_after_thread()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
DELETE FROM messages WHERE id_fil = OLD.id_fil;
|
||||
RETURN OLD;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER delete_messages_after_thread
|
||||
AFTER DELETE ON fils
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION delete_messages_after_thread();
|
||||
|
||||
-- To remove a piece and all its dependencies.
|
||||
CREATE OR REPLACE FUNCTION delete_cascade_piece()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
-- If this is a complex piece.
|
||||
DELETE FROM etre_complexe WHERE id_piece = OLD.id_piece;
|
||||
|
||||
DELETE FROM colorer WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM avoir_motif WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM etre_forme WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM necessiter WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM acheter WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM perdre WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM contenir WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM etre WHERE id_piece = OLD.id_piece;
|
||||
DELETE FROM pieces WHERE id_piece = OLD.id_piece;
|
||||
|
||||
return OLD;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER delete_cascade_piece
|
||||
AFTER DELETE ON pieces
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION delete_cascade_piece();
|
||||
|
||||
-- ============================================================================
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user