Я написал триггер, который переносит запись из таблицы members_new в members_old
. Функция триггера - вставить запись в members_old
на после вставки в members_new
. Так предположим, что запись становится вставляется в members_new
какмногопоточность с триггером
nMmbID nMmbName nMmbAdd
1 Abhi Bangalore
Эта запись будет получить вставленным в members_old
с той же структурой данных таблицы
Мой триггер как:
create trigger add_new_record
after
insert on members_new
for each row
INSERT INTO `test`.`members_old`
(
`nMmbID`,
`nMmbName`,
`nMmbAdd`
)
(
SELECT
`members_new`.`nMmbID`,
`members_new`.`nMmbName`,
`members_new`.`nMmbAdd`
FROM `test`.`members_new`
where nMmbID = (select max(nMmbID) from `test`.`members_new` // written to read the last record from the members_new and stop duplication on the members_old , also this will reduce the chances of any error .)
)
Это триггер работает пока, но мое замешательство заключается в том, что произойдет, если множественная вставка происходит в один момент времени.
Уменьшится ли производительность?
Буду ли я сталкиваться с условием взаимоблокировки в любом случае, так как у моих members_old
есть FK?
Если какое-либо лучшее решение для этой ситуации есть, пожалуйста, дайте внимания на этом
Я бы предположил, что это для 'mysql', но вы действительно должны добавить определенный тег при запросе' sql' вопросов - разные двигатели базы данных имеют разные средства, производительность и т. д. –