INSERT IGNORE

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
poohbinar
Сообщения: 28
Зарегистрирован: 2012.12.26, 16:58

INSERT IGNORE

Сообщение poohbinar » 2014.01.17, 09:51

Привет. Создал уникальный индекс. Хочу сделать INSERT IGNORE.

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

        $roomSpectator = new RoomSpectators;
        $roomSpectator->setScenario('join');
        $roomSpectator->load($_POST, 'user-join');
        if ($roomSpectator->save()) {
 
Можно ли используя данный код, малой кровью добавить игнор?

Аватара пользователя
samdark
Администратор
Сообщения: 9215
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: INSERT IGNORE

Сообщение samdark » 2014.01.17, 10:47

Если не хочется делать лишний SELECT, то:

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

try {
  if ($roomSpectator->save()) {
    ...
} catch (Exception $e) {
   // do nothing
}
 

poohbinar
Сообщения: 28
Зарегистрирован: 2012.12.26, 16:58

Re: INSERT IGNORE

Сообщение poohbinar » 2014.01.17, 10:49

Спасибо, я в общем то тоже других вариантов не придумал

Аватара пользователя
warlook
Сообщения: 11
Зарегистрирован: 2012.06.21, 18:07

Re: INSERT IGNORE

Сообщение warlook » 2015.03.03, 20:55

Такой же вопрос, при batchInsert возможно ли как-то добавить опцию IGNORE?

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

return Yii::$app->db->createCommand()->batchInsert(
      'table',
       'columns',
      $rows
)->execute(); 
Например, повторный запуск после сбоя может вернуть ошибку уникальности ключей, хотелось бы этого избегать. Есть такая возможность из коробки?

Аватара пользователя
samdark
Администратор
Сообщения: 9215
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: INSERT IGNORE

Сообщение samdark » 2015.03.04, 00:55

Нет.

Vassia-tt
Сообщения: 2
Зарегистрирован: 2015.09.19, 17:28

Re: INSERT IGNORE

Сообщение Vassia-tt » 2015.09.19, 17:34

Подскажите, пожалуйста, использую конструкцию try catch, но при дублировании уникального значения все равно получаю PDOException.

Vassia-tt
Сообщения: 2
Зарегистрирован: 2015.09.19, 17:28

Re: INSERT IGNORE

Сообщение Vassia-tt » 2015.10.23, 21:10

Нашел причину, нужно было
try {
$model->save();
} catch(\yii\db\Exception $e) {
//do somethings...
}

Ответить