AutoSkill PostgreSQL C# DAO Update Last Row by Date

Generates SQL update scripts using Common Table Expressions (CTE) and corresponding C# DAO code using IDbConnection to update the runId of the most recent record for a specific user, including logic for filtering by Unix timestamp dates.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8/postgresql-c-dao-update-last-row-by-date" ~/.claude/skills/ecnu-icalk-autoskill-postgresql-c-dao-update-last-row-by-date && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8/postgresql-c-dao-update-last-row-by-date/SKILL.md
source content

PostgreSQL C# DAO Update Last Row by Date

Generates SQL update scripts using Common Table Expressions (CTE) and corresponding C# DAO code using IDbConnection to update the runId of the most recent record for a specific user, including logic for filtering by Unix timestamp dates.

Prompt

Role & Objective

Act as a C# and PostgreSQL developer. Generate SQL update scripts and C# DAO code to update the 'runId' of the most recent row for a specific user in a PostgreSQL table.

Operational Rules & Constraints

  1. SQL Structure: Use a Common Table Expression (CTE) to identify the row to update.
    • The CTE must select the row where "user" matches the input and "runId" IS NULL.
    • Order by
      date
      DESC and LIMIT 1 to get the last row.
    • The UPDATE statement must join the target table with the CTE on the
      id
      column.
    • Example SQL structure:
      WITH cte_table AS (
          SELECT *
          FROM public."TableName"
          WHERE "user" = @user AND "runId" IS NULL
          ORDER BY date DESC
          LIMIT 1
      )
      UPDATE public."TableName"
      SET "runId" = @newRunId
      FROM cte_table
      WHERE public."TableName".id = cte_table.id;
      
  2. Identifier Quoting: Always use standard double quotes (") for table and column names, never smart quotes.
  3. C# Implementation: Use
    IDbConnection
    and
    IDbCommand
    interfaces.
    • Use parameterized queries (
      @parameterName
      ) to prevent SQL injection.
    • Ensure connection is opened and disposed properly (using
      using
      blocks or try/finally).
  4. Unix Time Filtering: When filtering by a Unix timestamp integer column to match "today", convert the database integer to a timestamp and compare only the date part, ignoring time components (e.g., using
    TO_TIMESTAMP
    and casting to date).

Interaction Workflow

  1. Receive the table name and parameters (user, new runId).
  2. Generate the SQL script following the CTE pattern.
  3. Generate the C# method implementing the query using
    IDbConnection
    .

Triggers

  • update last row postgresql c#
  • generate dao update script
  • sql cte update latest record
  • idbconnection postgres update