IDEMPIERE-1615 Multiple key columns lead to data corruption or data loss
This commit is contained in:
parent
ec50409760
commit
5f1c8e0860
|
@ -0,0 +1,11 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-1615 Multiple key columns lead to data corruption or data loss
|
||||||
|
-- Feb 14, 2019, 4:51:33 PM CET
|
||||||
|
INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('I','The table has already a key column, there can be just one key.',0,0,'Y',TO_DATE('2019-02-14 16:51:32','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-02-14 16:51:32','YYYY-MM-DD HH24:MI:SS'),100,200488,'KeyColumnAlreadyDefined','D','c5011666-1371-4620-a5bc-aa29265f5d90')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201902141651_IDEMPIERE-1615.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
-- IDEMPIERE-1615 Multiple key columns lead to data corruption or data loss
|
||||||
|
-- Feb 14, 2019, 4:51:33 PM CET
|
||||||
|
INSERT INTO AD_Message (MsgType,MsgText,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Message_ID,Value,EntityType,AD_Message_UU) VALUES ('I','The table has already a key column, there can be just one key.',0,0,'Y',TO_TIMESTAMP('2019-02-14 16:51:32','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-02-14 16:51:32','YYYY-MM-DD HH24:MI:SS'),100,200488,'KeyColumnAlreadyDefined','D','c5011666-1371-4620-a5bc-aa29265f5d90')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201902141651_IDEMPIERE-1615.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -413,6 +413,17 @@ public class MColumn extends X_AD_Column
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IDEMPIERE-1615 Multiple key columns lead to data corruption or data loss
|
||||||
|
if ((is_ValueChanged(COLUMNNAME_IsKey) || is_ValueChanged(COLUMNNAME_IsActive)) && isKey() && isActive()) {
|
||||||
|
int cnt = DB.getSQLValueEx(get_TrxName(),
|
||||||
|
"SELECT COUNT(*) FROM AD_Column WHERE AD_Table_ID=? AND IsActive='Y' AND AD_Column_ID!=? AND IsKey='Y'",
|
||||||
|
getAD_Table_ID(), getAD_Column_ID());
|
||||||
|
if (cnt > 0) {
|
||||||
|
log.saveError("Error", Msg.getMsg(getCtx(), "KeyColumnAlreadyDefined"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} // beforeSave
|
} // beforeSave
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue