소스 정보
- 저장소
- ffsshhttiikk/opencode-agents-skills
- 최근 소스 활동
- 2026년 2월 28일 22:49
- 감지된 SKILL.md 언어
- 영어
- 스타
- 2
- 포크
- 2
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill postgresql명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | postgresql |
| description | Advanced PostgreSQL database management, query optimization, and performance tuning |
| category | databases |
I am a powerful, open-source relational database management system (RDBMS) known for its robustness, extensibility, and standards compliance. I support advanced features including ACID transactions, complex queries, foreign keys, triggers, updatable views, and stored procedures. I excel at handling complex data relationships, supporting JSON/JSONB for document-style data, full-text search, and advanced indexing strategies. I am widely used for mission-critical applications requiring data integrity and complex querying capabilities.
import psycopg2
from psycopg2 import sql
from contextlib import contextmanager
@contextmanager
def get_connection():
conn = psycopg2.connect(
host="localhost",
database="app_db",
user="app_user",
password="secure_password",
port=5432
)
try:
yield conn
finally:
conn.close()
def fetch_users_with_orders(limit=100):
query = """
SELECT u.id, u.email, u.created_at, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at >= %s
GROUP BY u.id, u.email, u.created_at
ORDER BY order_count DESC
LIMIT %s
"""
with get_connection() as conn:
with conn.cursor(cursor_factory=psycopg2.extras.DictCursor) as cur:
cur.execute(query, ("2024-01-01", limit))
return cur.fetchall()
def insert_product_with_categories(product_data, category_ids):
with get_connection() as conn:
with conn.cursor() as cur:
cur.execute("""
INSERT INTO products (name, description, price, sku)
VALUES (%s, %s, %s, %s)
RETURNING id
""", (product_data["name"], product_data["description"],
product_data["price"], product_data["sku"]))
product_id = cur.fetchone()[]
cur.executemany(, [(product_id, cat_id) cat_id category_ids])
conn.commit()
product_id
import json
from psycopg2.extras import Json
def get_user_analytics():
query = """
WITH user_purchases AS (
SELECT
user_id,
created_at::date as purchase_date,
SUM(total_amount) as daily_total,
COUNT(*) as purchase_count
FROM orders
WHERE created_at >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY user_id, created_at::date
)
SELECT
user_id,
purchase_date,
daily_total,
purchase_count,
SUM(daily_total) OVER (PARTITION BY user_id ORDER BY purchase_date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) as rolling_7day_total,
ROW_NUMBER() OVER (PARTITION BY purchase_date ORDER BY daily_total DESC) as daily_rank
FROM user_purchases
ORDER BY user_id, purchase_date
"""
with get_connection() as conn:
with conn.cursor() as cur:
cur.execute(query)
return cur.fetchall()
def search_products_by_attributes(filters):
where_clauses = []
params = []
if "category" in filters:
where_clauses.append("attributes->>'category' = %s")
params.append(filters["category"])
if "min_price" in filters:
where_clauses.append("(attributes->>'price')::decimal >= %s")
params.append(filters["min_price"])
if "tags" in filters:
where_clauses.append("attributes->'tags' @> %s::jsonb")
params.append(json.dumps(filters["tags"]))
query = f"""
SELECT id, name, attributes
FROM products
{'WHERE ' + .join(where_clauses) where_clauses }
ORDER BY (attributes->>'popularity')::int DESC
LIMIT 50
"""
get_connection() conn:
conn.cursor() cur:
cur.execute(query, params)
cur.fetchall()
from psycopg2 import DatabaseError
def process_order_with_inventory(order_data, items):
with get_connection() as conn:
with conn.cursor() as cur:
try:
cur.execute("BEGIN")
cur.execute("""
INSERT INTO orders (user_id, total, status)
VALUES (%s, %s, 'pending')
RETURNING id
""", (order_data["user_id"], order_data["total"]))
order_id = cur.fetchone()[0]
cur.execute("SAVEPOINT before_items")
for item in items:
cur.execute("""
UPDATE inventory
SET quantity = quantity - %s
WHERE product_id = %s AND quantity >= %s
""", (item["quantity"], item["product_id"], item["quantity"]))
if cur.rowcount == 0:
cur.execute("ROLLBACK TO SAVEPOINT before_items")
raise ValueError(f"Insufficient inventory for product {item['product_id']}")
cur.execute("""
INSERT INTO order_items (order_id, product_id, quantity, price)
VALUES (%s, %s, %s, %s)
""", (order_id, item["product_id"], item["quantity"], item["price"]))
cur.execute("COMMIT")
return order_id
(DatabaseError, ValueError) e:
cur.execute()
e
import io
from psycopg2.extras import execute_values
def bulk_insert_products(products):
with get_connection() as conn:
with conn.cursor() as cur:
execute_values(cur, """
INSERT INTO products (name, sku, price, category, attributes, created_at)
VALUES %s
ON CONFLICT (sku) DO UPDATE SET
name = EXCLUDED.name,
price = EXCLUDED.price,
attributes = EXCLUDED.attributes,
updated_at = CURRENT_TIMESTAMP
""", products)
conn.commit()
def export_orders_to_csv(start_date, end_date):
query = """
COPY (
SELECT o.id, o.created_at, u.email, p.name, oi.quantity, oi.price
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN order_items oi ON o.id = oi.order_id
JOIN products p ON oi.product_id = p.id
WHERE o.created_at BETWEEN %s AND %s
ORDER BY o.created_at
) TO STDOUT WITH CSV HEADER
"""
with get_connection() as conn:
with conn.cursor() as cur:
buffer = io.StringIO()
cur.copy_expert(query, buffer, size=8192)
return buffer.getvalue()
def import_products_from_csv(csv_file):
with get_connection() as conn:
with conn.cursor() as cur:
cur.execute("""
CREATE TEMP TABLE temp_products (
name TEXT, sku TEXT, price DECIMAL, category TEXT
) ON COMMIT DROP
""")
buffer = io.StringIO(csv_file)
cur.copy_from(buffer, "temp_products", columns=("name", , , ), sep=)
cur.execute()
conn.commit()
import asyncio
import asyncpg
async def fetch_user_stats(user_id):
conn = await asyncpg.connect(
host="localhost",
database="app_db",
user="app_user",
password="secure_password"
)
try:
async with conn.transaction():
user = await conn.fetchrow("""
SELECT id, email, created_at FROM users WHERE id = $1
""", user_id)
orders = await conn.fetch("""
SELECT COUNT(*) as total_orders, SUM(total) as total_spent
FROM orders WHERE user_id = $1
""", user_id)
return {"user": dict(user), "orders": dict(orders[0])}
finally:
await conn.close()
async def bulk_insert_events(events):
conn = await asyncpg.connect(
host="localhost",
database="app_db",
user="app_user",
password="secure_password"
)
try:
await conn.executemany("""
INSERT INTO events (user_id, event_type, metadata, created_at)
VALUES ($1, $2, $3, $4)
""", events)
finally:
await conn.close()
async def ():
conn = asyncpg.connect(
host=,
database=,
user=,
password=
)
:
queries = [
(, ),
(, ),
(, ),
(, )
]
results = asyncio.gather(
*[conn.fetchval(query) query, _ queries]
)
(([name _, name queries], results))
:
conn.close()