diff --git a/backend_api_python/app/routes/portfolio.py b/backend_api_python/app/routes/portfolio.py index d21e3bf..210dd2b 100644 --- a/backend_api_python/app/routes/portfolio.py +++ b/backend_api_python/app/routes/portfolio.py @@ -255,7 +255,7 @@ def add_position(): INSERT INTO qd_manual_positions (user_id, market, symbol, name, side, quantity, entry_price, entry_time, notes, tags, group_name, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW()) - ON CONFLICT(user_id, market, symbol, side) DO UPDATE SET + ON CONFLICT(user_id, market, symbol, side, group_name) DO UPDATE SET name = excluded.name, quantity = excluded.quantity, entry_price = excluded.entry_price, diff --git a/backend_api_python/migrations/init.sql b/backend_api_python/migrations/init.sql index 10bd86d..9ad6771 100644 --- a/backend_api_python/migrations/init.sql +++ b/backend_api_python/migrations/init.sql @@ -438,7 +438,7 @@ CREATE TABLE IF NOT EXISTS qd_manual_positions ( group_name VARCHAR(100) DEFAULT '', created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW(), - UNIQUE(user_id, market, symbol, side) + UNIQUE(user_id, market, symbol, side, group_name) ); CREATE INDEX IF NOT EXISTS idx_manual_positions_user_id ON qd_manual_positions(user_id);