def METHOD_NAME(from_scn, to_scn, carriers, sector):
    """
    Copy links from one scenario to a different one.
    Parameters
    ----------
    from_scn : str
        Source scenario.
    to_scn : str
        Target scenario.
    carriers : list
        List of store carriers to copy.
    sector : str
        Name of sector (e.g. :code:`'gas'`) to get cost information from.
    """
    where_clause = "carrier IN " + str(tuple(carriers)).replace("',)", "')")
    gdf = db.select_geodataframe(
        f"""
        SELECT * FROM grid.egon_etrago_link
        WHERE {where_clause} AND scn_name = '{from_scn}' AND
        bus0 IN (
            SELECT bus_id FROM grid.egon_etrago_bus
            WHERE scn_name = '{from_scn}' AND country = 'DE'
        ) AND bus1 IN (
            SELECT bus_id FROM grid.egon_etrago_bus
            WHERE scn_name = '{from_scn}' AND country = 'DE'
        );
        """,
        epsg=4326,
        geom_col="topo",
    )
    gdf["scn_name"] = to_scn
    scn_params = get_sector_parameters(sector, to_scn)
    for carrier in carriers:
        for param in ["capital_cost", "marginal_cost", "efficiency"]:
            try:
                gdf.loc[gdf["carrier"] == carrier, param] = scn_params[param][
                    carrier
                ]
            except KeyError:
                pass
    db.execute_sql(
        f"""
        DELETE FROM grid.egon_etrago_link
        WHERE {where_clause} AND scn_name = '{to_scn}' AND
        bus0 NOT IN (
            SELECT bus_id FROM grid.egon_etrago_bus
            WHERE scn_name = '{to_scn}' AND country != 'DE'
        ) AND bus1 NOT IN (
            SELECT bus_id FROM grid.egon_etrago_bus
            WHERE scn_name = '{to_scn}' AND country != 'DE'
        );
        """
    )
    gdf.to_postgis(
        "egon_etrago_link",
        schema="grid",
        if_exists="append",
        con=db.engine(),
        index=False,
        dtype={"geom": Geometry(), "topo": Geometry()},
    )