Получить id последней добавленной записи. batchInsert

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
yura1976
Сообщения: 121
Зарегистрирован: 2012.08.06, 13:24

Получить id последней добавленной записи. batchInsert

Сообщение yura1976 »

Приветствую всех!
Использую

Код: Выделить всё

$connection = Yii::$app->db;
$transaction = $connection->beginTransaction();
 try {
	$connection->createCommand()->batchInsert(...)->execute();
	//здесь нужно получить id последней добавленной записи $lastinsertID
	$lastinsertID = $connection->getLastInsertID();
	
	//здесь еще один запрос с batchinsert, в котором нужно использовать $lastinsertID
	$connection->createCommand()->batchInsert(...)->execute();

	$transaction->commit();
 } catch (\Exception $e) {
        $transaction->rollBack();
 }
$lastinsertID получается = 0. Записи в таблицу в результате выполнения запроса вставлены. Подскажите, пожалуйста, можно ли как-то получить id последней добавленной записи
Последний раз редактировалось yura1976 2021.06.10, 22:38, всего редактировалось 1 раз.

masson
Сообщения: 543
Зарегистрирован: 2012.07.03, 15:59

Re: Получить id последней добавленной записи. batchInsert

Сообщение masson »

Наверное внутри транзакции это не сработает, надо спрашивать после $transaction->commit

yura1976
Сообщения: 121
Зарегистрирован: 2012.08.06, 13:24

Re: Получить id последней добавленной записи. batchInsert

Сообщение yura1976 »

masson писал(а):
2021.06.10, 22:25
Наверное внутри транзакции это не сработает, надо спрашивать после $transaction->commit
Пробовал без транзакции. Тот же результат. Да и, если спрашивать после $transaction->commit, то смысл использования транзакции в моем случае теряется.

yura1976
Сообщения: 121
Зарегистрирован: 2012.08.06, 13:24

Re: Получить id последней добавленной записи. batchInsert

Сообщение yura1976 »

Решил проблему. Моя невнимательность. Для первичного ключа не стоял autoincrement. Поставил autoincrement и все заработало. Но в таком случае возникает вопрос, если бы я использовал первичный ключ без autocincrement'а, то можно ли определить id последней добавленной записи

Ответить