Jump to content

Как SQL запросом узнать id номер только что добавленной в таблицу записи?


support

Recommended Posts

Если нужно для второго запроса получить id номер только что добавленной новости, то для этого тоже в SQL есть LAST_INSERT_ID()

т.е. если Вам нужно сдлеать запись в 2 таблицы и иметь один id

Например добавить статью с определённым номером id.

В articles id запишется 6 , к примеру

и что б в articles_description таблицу вставились данные с id статьи 6

В общем, вот пример, что б было понятно.

INSERT INTO email_templates (`id`, `alias`, `default`, `order`) VALUES ('', "abandoned-cart", 0, 4);

Первым запросом добавляет данные о шаблоне и записывается уникалный id запроса, дальше мы уже добавлем описание шаблона.

Но нам нужно добавить описания для только что добавленного шаблона, а не для любого, т.е. связать именно только что добавленный шаблон и описание записать в другую таблицу для этого шаблона, а для этого надо знать id, с каким номером записался шаблон, какой id у шаблона в базе.

Для этого и используется в запросе LAST_INSERT_ID()

INSERT INTO `email_template_descriptions` (`id`, `email_template_id`, `language_id`, `subject`, `content`) VALUES
(NULL, LAST_INSERT_ID(), 1, "Abandoned cart", "Thank you.");

т.е. мы просто выполняем 2 запроса подряд:

INSERT INTO email_templates (`id`, `alias`, `default`, `order`) VALUES ('', "abandoned-cart", 0, 4);

INSERT INTO `email_template_descriptions` (`id`, `email_template_id`, `language_id`, `subject`, `content`) VALUES
(NULL, LAST_INSERT_ID(), 1, "Abandoned cart", "Thank you.");

и получится всё правильно, id номер вставляемый вторым запросов во вторую таблицу будет соответствовать первому запросу.

 

Надеюсь, что  понятно объяснил.

Всё можно SQL запросами сделать.

Link to post
Share on other sites
×
×
  • Create New...