diff --git a/catalogue/PostgresCatalogue.cpp b/catalogue/PostgresCatalogue.cpp
index 921b2d265a577674e89d37d86aefbd9b4583b8f9..a1230d0e5d0753485457673c78ee17e59fce9c40 100644
--- a/catalogue/PostgresCatalogue.cpp
+++ b/catalogue/PostgresCatalogue.cpp
@@ -850,6 +850,7 @@ void PostgresCatalogue::beginCreateTemporarySetDeferred(rdbms::Conn &conn) const
   conn.executeNonQuery("CREATE TEMPORARY TABLE TEMP_ARCHIVE_FILE_BATCH (LIKE ARCHIVE_FILE) ON COMMIT DROP");
   conn.executeNonQuery("ALTER TABLE TEMP_ARCHIVE_FILE_BATCH ADD COLUMN STORAGE_CLASS_NAME VARCHAR(100)");
   conn.executeNonQuery("ALTER TABLE TEMP_ARCHIVE_FILE_BATCH ALTER COLUMN STORAGE_CLASS_ID DROP NOT NULL");
+  conn.executeNonQuery("ALTER TABLE TEMP_ARCHIVE_FILE_BATCH ALTER COLUMN IS_DELETED DROP NOT NULL");
   conn.executeNonQuery("CREATE INDEX TEMP_A_F_B_ARCHIVE_FILE_ID_I ON TEMP_ARCHIVE_FILE_BATCH(ARCHIVE_FILE_ID)");
   conn.executeNonQuery("CREATE INDEX TEMP_A_F_B_DIN_SCN_I ON TEMP_ARCHIVE_FILE_BATCH(DISK_INSTANCE_NAME, STORAGE_CLASS_NAME)");
   conn.executeNonQuery("CREATE TEMPORARY TABLE TEMP_TAPE_FILE_BATCH(ARCHIVE_FILE_ID NUMERIC(20,0)) ON COMMIT DROP");
diff --git a/catalogue/common_catalogue_schema.sql b/catalogue/common_catalogue_schema.sql
index 62a667d007b7f61fde5d052bb43624f9e22e6180..17284077caee9c2a111839c4f282c593d75742f0 100644
--- a/catalogue/common_catalogue_schema.sql
+++ b/catalogue/common_catalogue_schema.sql
@@ -193,9 +193,11 @@ CREATE TABLE ARCHIVE_FILE(
   STORAGE_CLASS_ID        UINT64TYPE      CONSTRAINT ARCHIVE_FILE_SCI_NN  NOT NULL,
   CREATION_TIME           UINT64TYPE      CONSTRAINT ARCHIVE_FILE_CT2_NN  NOT NULL,
   RECONCILIATION_TIME     UINT64TYPE      CONSTRAINT ARCHIVE_FILE_RT_NN   NOT NULL,
+  IS_DELETED              CHAR(1)         DEFAULT '0' CONSTRAINT ARCHIVE_FILE_ID_NN NOT NULL,
   CONSTRAINT ARCHIVE_FILE_PK PRIMARY KEY(ARCHIVE_FILE_ID),
   CONSTRAINT ARCHIVE_FILE_STORAGE_CLASS_FK FOREIGN KEY(STORAGE_CLASS_ID) REFERENCES STORAGE_CLASS(STORAGE_CLASS_ID),
-  CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID)
+  CONSTRAINT ARCHIVE_FILE_DIN_DFI_UN UNIQUE(DISK_INSTANCE_NAME, DISK_FILE_ID),
+  CONSTRAINT ARCHIVE_FILE_ID_BOOL_CK CHECK(IS_DELETED IN ('0', '1'))
 );
 CREATE INDEX ARCHIVE_FILE_DIN_DFP_IDX ON ARCHIVE_FILE(DISK_INSTANCE_NAME, DISK_FILE_PATH);
 CREATE TABLE TAPE_FILE(
diff --git a/catalogue/mysql_catalogue_schema_trigger.sql b/catalogue/mysql_catalogue_schema_trigger.sql
index 4a4fff126b5ccea5e04baa729e237c13f69330c2..14b090fb8fac554eb7147cd521869b8a0632e457 100644
--- a/catalogue/mysql_catalogue_schema_trigger.sql
+++ b/catalogue/mysql_catalogue_schema_trigger.sql
@@ -119,3 +119,21 @@ CREATE TRIGGER `CHECK_LOGICAL_LIBRARY_BEFORE_UPDATE` BEFORE UPDATE ON `LOGICAL_L
       SET MESSAGE_TEXT = 'LOGICAL_LIBRARY.IS_DISABLED should be 0 or 1';       
     END IF;
   END;
+
+CREATE TRIGGER `CHECK_ARCHIVE_FILE_BEFORE_INSERT` BEFORE INSERT ON `ARCHIVE_FILE`
+  FOR EACH ROW
+  BEGIN
+    IF new.IS_DELETED not in ('0','1') THEN
+      SIGNAL SQLSTATE '45000'
+      SET MESSAGE_TEXT = 'ARCHIVE_FILE.IS_DELETED should be 0 or 1';       
+    END IF;
+  END;
+
+CREATE TRIGGER `CHECK_ARCHIVE_FILE_BEFORE_UPDATE` BEFORE UPDATE ON `ARCHIVE_FILE`
+  FOR EACH ROW
+  BEGIN
+    IF new.IS_DELETED not in ('0','1') THEN
+      SIGNAL SQLSTATE '45000'
+      SET MESSAGE_TEXT = 'ARCHIVE_FILE.IS_DELETED should be 0 or 1';       
+    END IF;
+  END;