diff options
-rw-r--r-- | config-db/OpenSLX/MetaDB/DBI.pm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/config-db/OpenSLX/MetaDB/DBI.pm b/config-db/OpenSLX/MetaDB/DBI.pm index 19e97c54..c7646a83 100644 --- a/config-db/OpenSLX/MetaDB/DBI.pm +++ b/config-db/OpenSLX/MetaDB/DBI.pm @@ -387,6 +387,7 @@ sub _doDelete my $table = shift; my $IDs = shift; my $idCol = shift; + my $additionalWhereClause = shift; my $dbh = $self->{'dbh'}; @@ -396,6 +397,9 @@ sub _doDelete my $sql = "DELETE FROM $table"; if (defined $id) { $sql .= " WHERE $idCol = ".$self->quote($id); + if (defined $additionalWhereClause) { + $sql .= $additionalWhereClause; + } } my $sth = $dbh->prepare($sql) or confess _tr(q[Can't delete from table <%s> (%s)], $table, @@ -474,7 +478,8 @@ sub _updateRefTable # all the remaining value-IDs need to be removed: if (scalar keys %lastValueIDs) { - $self->_doDelete($table, [ keys %lastValueIDs ], $valueCol); + $self->_doDelete($table, [ keys %lastValueIDs ], $valueCol, + " AND $keyCol='$keyID'"); } return 1; } |