diff --git a/LTA/ltastorageoverview/lib/create_db_ltastorageoverview.sql b/LTA/ltastorageoverview/lib/create_db_ltastorageoverview.sql
index eb04a709eceafb3fe71631e5c38f3689e3345988..9810a47d7818ddbd9a5d5613ed0a102cf9b0f119 100644
--- a/LTA/ltastorageoverview/lib/create_db_ltastorageoverview.sql
+++ b/LTA/ltastorageoverview/lib/create_db_ltastorageoverview.sql
@@ -95,7 +95,7 @@ CREATE TABLE scraper.last_directory_visit (
 
 CREATE TABLE metainfo.directory_stats (
     id                      serial,
-    directory_id            integer NOT NULL REFERENCES lta.directory ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE,
+    directory_id            integer UNIQUE NOT NULL REFERENCES lta.directory ON DELETE CASCADE DEFERRABLE INITIALLY IMMEDIATE,
     num_files               integer,
     total_file_size         bigint,
     min_file_size           bigint,
@@ -154,6 +154,47 @@ CREATE TRIGGER trigger_directory_inserted
   FOR EACH ROW
   EXECUTE PROCEDURE lta.on_directory_inserted_add_directory_closure_entry();
 
+--------------------------------------------------------------------------------
+
+DROP TRIGGER IF EXISTS trigger_fileinfo_inserted ON lta.fileinfo;
+DROP FUNCTION IF EXISTS lta.on_fileinfo_inserted_add_directory_stats();
+
+CREATE OR REPLACE FUNCTION lta.on_fileinfo_inserted_add_directory_stats()
+  RETURNS trigger AS
+$BODY$
+BEGIN
+    INSERT INTO metainfo.directory_stats (directory_id)
+    VALUES (new.directory_id)
+    ON CONFLICT DO NOTHING ;
+
+    CREATE TEMPORARY TABLE temp_fileinfo_for_dirstats
+        ON COMMIT DROP
+        AS (SELECT fi.size, fi.creation_date FROM lta.fileinfo fi
+            WHERE fi.directory_id = NEW.directory_id) ;
+
+    UPDATE metainfo.directory_stats SET
+        num_files=(SELECT count(size) FROM temp_fileinfo_for_dirstats),
+        total_file_size=(SELECT sum(size) FROM temp_fileinfo_for_dirstats),
+        min_file_size=(SELECT min(size) FROM temp_fileinfo_for_dirstats),
+        max_file_size=(SELECT max(size) FROM temp_fileinfo_for_dirstats),
+        min_file_creation_date=(SELECT min(creation_date) FROM temp_fileinfo_for_dirstats),
+        max_file_creation_date=(SELECT max(creation_date) FROM temp_fileinfo_for_dirstats)
+    WHERE directory_id = NEW.directory_id ;
+
+    RETURN NEW;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100;
+
+CREATE TRIGGER trigger_fileinfo_inserted
+  AFTER INSERT
+  ON lta.fileinfo
+  FOR EACH ROW
+  EXECUTE PROCEDURE lta.on_fileinfo_inserted_add_directory_stats();
+
+--------------------------------------------------------------------------------
+
 -- END TRIGGERS