Как мне вернуть идентификатор из оператора вставки SQL без дополнительного запроса? - PullRequest
1 голос
/ 10 июля 2020

У меня есть база данных mySQL, которая выглядит так:

CREATE TABLE gif (
    id varchar(32),
    filename varchar(32),
    PRIMARY KEY (id)
);


CREATE TABLE tag (
    id int NOT NULL AUTO_INCREMENT,
    tag varchar(32) NOT NULL UNIQUE,
    PRIMARY KEY (id)
);

CREATE TABLE gif_tag (
    gif_id varchar(32),
    tag_id int,
    FOREIGN KEY (gif_id) REFERENCES gif(id),
    FOREIGN KEY (tag_id) REFERENCES tag(id),
    primary KEY (gif_id, tag_id)
);

Я бы хотел, чтобы, когда пользователь загружает гифку и присваивает ей теги, я вставляю ее в базу данных следующим образом:

  1.  INSERT INTO gif VALUES('someUID', 'fileName.gif');
    
  2.  INSERT IGNORE INTO tag (tag) VALUES ('Kitten'), ('Skateboarding'), ('Rainbows');
    
  3.   INSERT IGNORE INTO gif_tag (gif_id, tag_id)    
     VALUES (1, "someUID"), (2, "someUID"), (2, "someUID"); 
     -- where 1, 2, 3 are the ids respectively assigned in step 2
    

Есть ли способ сделать так, чтобы оператор 2 вернет tag_id для каждого элемента, чтобы я мог использовать их на шаге 3?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...