diff --git a/src-db/database/model/triggers/M_CH_VALUE_TRG2.xml b/src-db/database/model/triggers/M_CH_VALUE_TRG2.xml
--- a/src-db/database/model/triggers/M_CH_VALUE_TRG2.xml
+++ b/src-db/database/model/triggers/M_CH_VALUE_TRG2.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
   <database name="TRIGGER M_CH_VALUE_TRG2">
-    <trigger name="M_CH_VALUE_TRG2" table="M_CH_VALUE" fires="after" insert="true" update="true" delete="false" foreach="statement">
+    <trigger name="M_CH_VALUE_TRG2" table="M_CH_VALUE" fires="after" insert="true" update="true" delete="false" foreach="row">
       <body><![CDATA[
 
 /*************************************************************************
@@ -30,9 +30,11 @@
   FROM dual
   WHERE EXISTS (SELECT 1
                 FROM m_ch_value chv
-                    JOIN m_characteristic ch ON chv.m_characteristic_id = ch.m_characteristic_id AND ch.isvariant = 'Y'
+                    JOIN m_characteristic ch ON ch.m_characteristic_id = NEW.m_characteristic_id AND ch.isvariant = 'Y'
+                    AND chv.m_ch_value_id <> NEW.m_ch_value_id
+                    AND chv.name = NEW.name
                 GROUP BY chv.name, chv.m_characteristic_id
-                HAVING count(*) > 1);
+                HAVING count(*) > 0);
 
   IF (v_Count > 0) THEN
     RAISE_APPLICATION_ERROR(-20000, '@DuplicatedChValueName@');
