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.mdsource 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
- 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
DESC and LIMIT 1 to get the last row.date - The UPDATE statement must join the target table with the CTE on the
column.id - 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;
- Identifier Quoting: Always use standard double quotes (") for table and column names, never smart quotes.
- C# Implementation: Use
andIDbConnection
interfaces.IDbCommand- Use parameterized queries (
) to prevent SQL injection.@parameterName - Ensure connection is opened and disposed properly (using
blocks or try/finally).using
- Use parameterized queries (
- 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
and casting to date).TO_TIMESTAMP
Interaction Workflow
- Receive the table name and parameters (user, new runId).
- Generate the SQL script following the CTE pattern.
- 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