Anomalie #10764
fermé[analyse Script] Erreur lors du passage du 1904.sql
Description
Retour SGAMI :
En ligne 258 de votre script de montée de version 1904.sql, vous engagez un remplissage automatique du champ "added_by_entity"
UPDATE listinstance SET added_by_entity =
(SELECT entity_id FROM users_entities WHERE users_entities.user_id = listinstance.added_by_user AND primary_entity = 'Y')
WHERE added_by_entity IS NULL OR added_by_entity = '';
Nous rencontrons un rejet via l'erreur :
ERREUR: une valeur NULL viole la contrainte NOT NULL de la colonne « added_by_entity »
DÉTAIL : La ligne en échec contient (letterbox_coll, 9998, DOC, 0, FALEZINE, user_id, dest, EGILLET, null, 3, 51445, Y, entity_id, null, null, f, f)
Le script va charger une entité lorsque la condition : (SELECT entity_id FROM users_entities WHERE users_entities.user_id = listinstance.added_by_user AND primary_entity = 'Y') est rempli.
Or dans le cas d'usage, l'utilisateur listinstance.added_by_user peut ne plus exister dans la table users_entities de part sa suppression.
Donc la requête renvoie null ce qui n'est pas autorisé dans la table listinstance
En effet, un utilisateur peut avoir été supprimé : il est en position DEL dans la table users. Il est donc plus affecté et par conséquent supprimer de la table users_entities.