Browse Source

Don't try to update on NotNullConstraintViolationException, only on unique or foreign key

Signed-off-by: Joas Schilling <coding@schilljs.com>
tags/v21.0.0beta1
Joas Schilling 3 years ago
parent
commit
fbda2d1d25
No account linked to committer's email address
1 changed files with 3 additions and 0 deletions
  1. 3
    0
      lib/private/DB/Connection.php

+ 3
- 0
lib/private/DB/Connection.php View File

@@ -39,6 +39,7 @@ use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Driver;
use Doctrine\DBAL\Exception\ConstraintViolationException;
use Doctrine\DBAL\Exception\NotNullConstraintViolationException;
use Doctrine\DBAL\Platforms\MySqlPlatform;
use Doctrine\DBAL\Schema\Schema;
use OC\DB\QueryBuilder\QueryBuilder;
@@ -322,6 +323,8 @@ class Connection extends ReconnectWrapper implements IDBConnection {
}, array_merge($keys, $values))
);
return $insertQb->execute();
} catch (NotNullConstraintViolationException $e) {
throw $e;
} catch (ConstraintViolationException $e) {
// value already exists, try update
$updateQb = $this->getQueryBuilder();

Loading…
Cancel
Save