Является ли LAST_INSERT_ID () в транзакции надежным?

Я использую mysql / ado.net / C # вот моя проблема. Я знаю, что mysql работает одновременно, однако у меня есть данные файла (имя имени) и данные db (строка) для синхронизации.

Если я начну транзакцию, и она по какой-либо причине не получится, это будет проблемой? Если у меня этот код будет запущен одновременно на двух ядрах, будут ли они дублировать друг друга? По сути, мне нужно знать, если 1) last_insert_id зависит от не меняется. 2) если одна транзакция использует указанный rowid, то другая транзакция не будет ее использовать.

start transaction
insert statement, however i dont want it to be active yet;
select LAST_INSERT_ID()
File.Delete(lastid)//may exist from a transaction that failed
File.Move(thumbImage, lastid)
transaction.commit()//ok done

Это безопасно? Почему или почему нет?

Ответы на вопрос(1)

Ваш ответ на вопрос