CREATE FUNCTION insert_t1 (_link char(36)) RETURNS INT UNSIGNED
BEGIN
DECLARE _id INT UNSIGNED;
INSERT IGNORE INTO t1(link) VALUE(_link);
SELECT id FROM t1 INTO _id WHERE link = _link;
RETURN _id;
END
А, кажется понял. Вы хотите создать внешний ключ, но не создавать под него индекс?
А такое вообще возможно?
Какая разница, есть там пропуски, или не