에 여러 태그를 추가, 다음 ID를 선택하고 이름은 내가 creat에나는 데이터베이스에서 테이블 <code>tags</code>이 내가 태그의 <code>name</code> 존재하지 않을 경우 추가 값을 기준으로 한 쿼리를 생성 할 테이블
태그 ID를 선택 존재하는 경우 간단한 코드 :
DELIMITER $$
USE `cc`$$
DROP FUNCTION IF EXISTS getTagId$$
CREATE FUNCTION getTagId (tag CHAR(20)) RETURNS INT CHARSET utf-8
BEGIN
DECLARE id INT
set @id = (select id from tags where name = @tag)
if (@id is null) then
insert into tags(name) values(@tag)
set @id = (select last_insert_id())
end if
SELECT @id
END
delimiter;
그러나이 코드는 작동하지 않습니다 (이것은 MySQL의 첫 번째 기능 임).
나는 하나의 쿼리에서 10 개 이상의 태그를 추가하고 싶습니다. 최적화 방법에 대한 아이디어가 있습니까?
하는 식으로 무시하지 tags.name에 고유 인덱스를 추가 :
는 같은 목표를 달성하기 위해 일하니? – sashkello음, 이것은 매우 간단한 조작이므로 효율적입니다. 함수는 MySQL에서는 효율적이지 못합니다 (많은 네트워크 트래픽을 절약하지 않는 한 그렇습니다). –