• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/db/pgsqlsqlhelper.php
  • Класс: BitrixMainDBPgsqlSqlHelper
  • Вызов: PgsqlSqlHelper::prepareMerge
public function prepareMerge($tableName, array $primaryFields, array $insertFields, array $updateFields)
{
	$insert = $this->prepareInsert($tableName, $insertFields);
	$update = $this->prepareUpdate($tableName, $updateFields);

	if (
		$insert && $insert[0] != "" && $insert[1] != ""
		&& $update
		&& $primaryFields
	)
	{
		$sql = 'INSERT INTO ' . $this->quote($tableName) . ' ('.$insert[0].')
			VALUES (' . $insert[1] . ')
			ON CONFLICT (' . implode(',', array_map([$this, 'quote'], $primaryFields)) . ')
			DO UPDATE SET ' . $update[0];
	}
	else
	{
		$sql = "";
	}

	return array(
		$sql
	);

}