Changes between Version 1 and Version 2 of CloneBuild


Ignore:
Timestamp:
12/29/25 00:15:13 (5 hours ago)
Author:
233051
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CloneBuild

    v1 v2  
    1212BEGIN;
    1313
    14 SELECT *
    15 FROM build
    16 WHERE id = $buildId
    17 LIMIT 1;
    18 
    19 INSERT INTO build (user_id, name, created_at, description, total_price, is_approved)
    20 SELECT
    21   $userId,
    22   (b.name || ' (copy)'),
    23   CURRENT_DATE,
    24   b.description,
    25   b.total_price,
    26   false
    27 FROM build AS b
    28 WHERE b.id = $buildId
    29 RETURNING id;
    30 
    31 SELECT component_id
    32 FROM build_component
    33 WHERE build_id = $buildId;
    34 
    35 INSERT INTO build_component (build_id, component_id)
    36 SELECT
    37   $newBuildId,
    38   bc.component_id
    39 FROM build_component AS bc
    40 WHERE bc.build_id = $buildId;
     14WITH build_to_clone AS (
     15  SELECT name, description, total_price
     16  FROM build
     17  WHERE id = $buildId
     18  LIMIT 1
     19),
     20new_build AS (
     21  INSERT INTO build (user_id, name, created_at, description, total_price, is_approved)
     22  SELECT
     23    $userId,
     24    build_to_clone.name || ' (copy)',
     25    CURRENT_DATE,
     26    build_to_clone.description,
     27    build_to_clone.total_price,
     28    false
     29  FROM build_to_clone
     30  RETURNING id
     31),
     32copied_components AS (
     33  INSERT INTO build_component (build_id, component_id)
     34  SELECT
     35    new_build.id,
     36    bc.component_id
     37  FROM new_build
     38  JOIN build_component AS bc
     39    ON bc.build_id = $buildId
     40  RETURNING 1
     41)
     42SELECT id
     43FROM new_build;
    4144
    4245COMMIT;