CREATE PROCEDURE get_recent_softlink(IN input_user_id INT, IN destination_node_id INT )
BEGIN
  DECLARE recent_source_node_id           INT;
  DECLARE scid                            INT;

  START TRANSACTION;
  SELECT softlink_creation_id, from_node
    INTO scid, recent_source_node_id
    FROM softlink_creation
    WHERE creater_user_id = input_user_id
        AND to_node = destination_node_id
        AND displayed = 0
    ORDER BY create_time ASC
    LIMIT 1
    FOR UPDATE
    ;
  IF scid IS NOT NULL THEN
    UPDATE softlink_creation
    SET displayed = 1
    WHERE softlink_creation_id = scid
    ;
  END IF;

  SELECT recent_source_node_id;
  COMMIT;
END