diff --git a/apps/files_external/lib/Service/DBConfigService.php b/apps/files_external/lib/Service/DBConfigService.php
index c986acbaa5dd4555304fa56b3d44d8d0a578e317..65995b21cc40d8f56ddde78b0d983cf83be3dead 100644
--- a/apps/files_external/lib/Service/DBConfigService.php
+++ b/apps/files_external/lib/Service/DBConfigService.php
@@ -25,6 +25,7 @@
 
 namespace OCA\Files_External\Service;
 
+use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
 use OCP\DB\QueryBuilder\IQueryBuilder;
 use OCP\IDBConnection;
 use OCP\Security\ICrypto;
@@ -300,12 +301,15 @@ class DBConfigService {
 		if ($key === 'password') {
 			$value = $this->encryptValue($value);
 		}
-		$count = $this->connection->insertIfNotExist('*PREFIX*external_config', [
-			'mount_id' => $mountId,
-			'key' => $key,
-			'value' => $value
-		], ['mount_id', 'key']);
-		if ($count === 0) {
+
+		try {
+			$builder = $this->connection->getQueryBuilder();
+			$builder->insert('external_config')
+				->setValue('mount_id', $builder->createNamedParameter($mountId, IQueryBuilder::PARAM_INT))
+				->setValue('key', $builder->createNamedParameter($key, IQueryBuilder::PARAM_STR))
+				->setValue('value', $builder->createNamedParameter($value, IQueryBuilder::PARAM_STR))
+				->execute();
+		} catch(UniqueConstraintViolationException $e) {
 			$builder = $this->connection->getQueryBuilder();
 			$query = $builder->update('external_config')
 				->set('value', $builder->createNamedParameter($value, IQueryBuilder::PARAM_STR))
@@ -321,13 +325,14 @@ class DBConfigService {
 	 * @param string $value
 	 */
 	public function setOption($mountId, $key, $value) {
-
-		$count = $this->connection->insertIfNotExist('*PREFIX*external_options', [
-			'mount_id' => $mountId,
-			'key' => $key,
-			'value' => json_encode($value)
-		], ['mount_id', 'key']);
-		if ($count === 0) {
+		try {
+			$builder = $this->connection->getQueryBuilder();
+			$builder->insert('external_options')
+				->setValue('mount_id', $builder->createNamedParameter($mountId, IQueryBuilder::PARAM_INT))
+				->setValue('key', $builder->createNamedParameter($key, IQueryBuilder::PARAM_STR))
+				->setValue('value', $builder->createNamedParameter(json_encode($value), IQueryBuilder::PARAM_STR))
+				->execute();
+		} catch(UniqueConstraintViolationException $e) {
 			$builder = $this->connection->getQueryBuilder();
 			$query = $builder->update('external_options')
 				->set('value', $builder->createNamedParameter(json_encode($value), IQueryBuilder::PARAM_STR))
@@ -338,11 +343,16 @@ class DBConfigService {
 	}
 
 	public function addApplicable($mountId, $type, $value) {
-		$this->connection->insertIfNotExist('*PREFIX*external_applicable', [
-			'mount_id' => $mountId,
-			'type' => $type,
-			'value' => $value
-		], ['mount_id', 'type', 'value']);
+		try {
+			$builder = $this->connection->getQueryBuilder();
+			$builder->insert('external_applicable')
+				->setValue('mount_id', $builder->createNamedParameter($mountId))
+				->setValue('type', $builder->createNamedParameter($type))
+				->setValue('value', $builder->createNamedParameter($value))
+				->execute();
+		} catch(UniqueConstraintViolationException $e) {
+			// applicable exists already
+		}
 	}
 
 	public function removeApplicable($mountId, $type, $value) {