jeudi 12 décembre 2019

Trying to create laravel query to Select then Insert if record not exist, Update if exist in another table

I have Postgres Query referring to which i am able to create query in laravel syntax for "select and then insert record". Not able to apply "if exist, update record" in laravel query.

postgre query

     INSERT INTO product_details (id, name, hash_id )
     SELECT prod.id, d.name, MD5(CONCAT(d.name, LOWER(prod.id)))
     FROM tmpTable tmp
     INNER JOIN detailsTable d USING(name)
     INNER JOIN productsTable prod ON (prod.id = tmp.id)
     ON CONFLICT ON CONSTRAINT product_details_pkey1
     DO UPDATE SET name = EXCLUDED.name; 

Laravel Query

  $query = DB::table('tmpTable  AS tmp')
              ->join('detailsTable AS d', 'tmp.name','=', 'd.name')
             ->join('productsTable AS prod', 'prod.id','=','tmp.id')
             ->select('prod.id', 'd.name','MD5(CONCAT(d.name, LOWER(prod.id)))');            

    DB::table('product_details')->insertUsing(['id', 'name', 'hash_id'], $query);


via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire