diff --git a/sqlalchemy_iris/base.py b/sqlalchemy_iris/base.py index 14e9213..901a836 100644 --- a/sqlalchemy_iris/base.py +++ b/sqlalchemy_iris/base.py @@ -1485,9 +1485,11 @@ def get_multi_foreign_keys( if fkdelrule != "NO ACTION": fkey["options"]["ondelete"] = fkdelrule - - fkey["constrained_columns"].append(scol) - fkey["referred_columns"].append(rcol) + + if scol not in fkey["constrained_columns"]: + fkey["constrained_columns"].append(scol) + if rcol not in fkey["referred_columns"]: + fkey["referred_columns"].append(rcol) default = ReflectionDefaults.foreign_keys @@ -1606,10 +1608,12 @@ def get_multi_columns( ): if charlen == -1: charlen = None - try: - kwargs["length"] = int(charlen) - except ValueError: kwargs["length"] = 0 + else: + try: + kwargs["length"] = int(charlen) + except ValueError: + kwargs["length"] = 0 if collation: kwargs["collation"] = collation if coltype is None: