diff --git a/lib/classes/databox/field.php b/lib/classes/databox/field.php index 048dbee215..bba7f1b6c4 100644 --- a/lib/classes/databox/field.php +++ b/lib/classes/databox/field.php @@ -522,11 +522,22 @@ class databox_field implements cache_cacheableInterface public function set_dces_element(databox_Field_DCESAbstract $DCES_element = null) { + $connbas = $this->get_connection(); + + if (null !== $DCES_element) { + $sql = 'UPDATE metadatas_structure + SET dces_element = null WHERE dces_element = :dces_element'; + + $stmt = $connbas->prepare($sql); + $stmt->execute(array( + ':dces_element' => $DCES_element->get_label() + )); + $stmt->closeCursor(); + } + $sql = 'UPDATE metadatas_structure SET dces_element = :dces_element WHERE id = :id'; - $connbas = $this->get_connection(); - $stmt = $connbas->prepare($sql); $stmt->execute(array( ':dces_element' => $DCES_element ? $DCES_element->get_label() : null diff --git a/lib/conf.d/bases_structure.xml b/lib/conf.d/bases_structure.xml index d4773a7717..071b5b7098 100644 --- a/lib/conf.d/bases_structure.xml +++ b/lib/conf.d/bases_structure.xml @@ -4720,6 +4720,13 @@ name + + dces_element + UNIQUE + + dces_element + + indexable INDEX