Files
juwan-backend/desc/sql/wallet/00-wallets.sql
T
2026-03-31 22:12:06 +08:00

19 lines
683 B
SQL

CREATE TABLE wallets
(
user_id BIGINT PRIMARY KEY,
balance DECIMAL(12, 2) NOT NULL DEFAULT 0.00, -- 可用余额
frozen_balance DECIMAL(12, 2) NOT NULL DEFAULT 0.00, -- 冻结余额
version INT NOT NULL DEFAULT 1, -- 必须使用乐观锁
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT chk_balance_non_negative CHECK (balance >= 0),
CONSTRAINT chk_frozen_non_negative CHECK (frozen_balance >= 0)
);
CREATE INDEX idx_wallets_updated ON wallets (updated_at DESC);
CREATE TRIGGER trigger_wallets_updated_at
BEFORE UPDATE
ON wallets
FOR EACH ROW
EXECUTE FUNCTION update_updated_at_column();