:type key1: ForeignKeyConstraint

        :type key2: ForeignKeyConstraint

        :rtype: bool

def diff_foreign_key(self, key1, key2):
        """
        :type key1: ForeignKeyConstraint

        :type key2: ForeignKeyConstraint

        :rtype: bool
        """
        key1_unquoted_local_columns = [
            c.lower() for c in key1.get_unquoted_local_columns()
        ]
        key2_unquoted_local_columns = [
            c.lower() for c in key2.get_unquoted_local_columns()
        ]

        if key1_unquoted_local_columns != key2_unquoted_local_columns:
            return True

        key1_unquoted_foreign_columns = [
            c.lower() for c in key1.get_unquoted_foreign_columns()
        ]
        key2_unquoted_foreign_columns = [
            c.lower() for c in key2.get_unquoted_foreign_columns()
        ]

        if key1_unquoted_foreign_columns != key2_unquoted_foreign_columns:
            return True

        if (
            key1.get_unqualified_foreign_table_name()
            != key2.get_unqualified_foreign_table_name()
        ):
            return True

        if key1.on_update() != key2.on_update():
            return True

        if key1.on_delete() != key2.on_delete():
            return True

        return False