thinkphp在PostgreSQL下兼容ON CONFLICT DO NOTHING处理方法

由于thinkphp只对Mysql有INSERT IGNORE方法,PostgreSQL是ON CONFLICT  DO NOTHING方法,但是thinkphp orm一直没有支持,只能暂时在model用这个方法.

    public static function insertIgnore(array $data, string $conflictTarget = null): int
    {
        $rawSql = static::fetchSql(true)->insert($data);

        if ($conflictTarget) {
            $rawSql = "{$rawSql} ON CONFLICT {$conflictTarget}  DO NOTHING";
        }
        return Db::execute($rawSql);
    }

添加新评论 »