51 lines
1.6 KiB
MySQL
51 lines
1.6 KiB
MySQL
|
|
-- ============================================
|
||
|
|
-- 此文件由 Meoo Cloud 自动生成,请勿修改
|
||
|
|
-- This file is auto-generated by Meoo Cloud, DO NOT MODIFY
|
||
|
|
-- ============================================
|
||
|
|
|
||
|
|
|
||
|
|
ALTER TABLE inventory_records
|
||
|
|
DROP CONSTRAINT IF EXISTS chk_inventory_positive;
|
||
|
|
ALTER TABLE inventory_records
|
||
|
|
ADD CONSTRAINT chk_inventory_positive
|
||
|
|
CHECK (quantity >= 0 AND rolls >= 0 AND (price_per_meter IS NULL OR price_per_meter >= 0));
|
||
|
|
|
||
|
|
ALTER TABLE payments
|
||
|
|
DROP CONSTRAINT IF EXISTS chk_payment_positive;
|
||
|
|
ALTER TABLE payments
|
||
|
|
ADD CONSTRAINT chk_payment_positive
|
||
|
|
CHECK (amount >= 0 AND quantity >= 0 AND price_per_meter >= 0);
|
||
|
|
|
||
|
|
ALTER TABLE accounts_payable
|
||
|
|
DROP CONSTRAINT IF EXISTS chk_ap_amounts;
|
||
|
|
ALTER TABLE accounts_payable
|
||
|
|
ADD CONSTRAINT chk_ap_amounts
|
||
|
|
CHECK (
|
||
|
|
total_amount >= 0 AND
|
||
|
|
paid_amount >= 0 AND
|
||
|
|
unpaid_amount >= 0 AND
|
||
|
|
paid_amount <= total_amount AND
|
||
|
|
unpaid_amount <= total_amount
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE OR REPLACE VIEW v_error_rate_monitor AS
|
||
|
|
SELECT
|
||
|
|
DATE_TRUNC('day', changed_at) as check_date,
|
||
|
|
table_name,
|
||
|
|
COUNT(*) as total_operations,
|
||
|
|
SUM(CASE WHEN validation_passed = FALSE THEN 1 ELSE 0 END) as failed_operations,
|
||
|
|
ROUND(
|
||
|
|
SUM(CASE WHEN validation_passed = FALSE THEN 1 ELSE 0 END)::NUMERIC /
|
||
|
|
NULLIF(COUNT(*), 0) * 10000, 2
|
||
|
|
) as error_rate_per_10k,
|
||
|
|
CASE
|
||
|
|
WHEN SUM(CASE WHEN validation_passed = FALSE THEN 1 ELSE 0 END)::NUMERIC /
|
||
|
|
NULLIF(COUNT(*), 0) * 10000 <= 1 THEN '✓ 达标 (≤1/万)'
|
||
|
|
ELSE '✗ 超标 (>1/万)'
|
||
|
|
END as target_status
|
||
|
|
FROM data_audit_logs
|
||
|
|
WHERE changed_at >= NOW() - INTERVAL '30 days'
|
||
|
|
GROUP BY DATE_TRUNC('day', changed_at), table_name
|
||
|
|
ORDER BY check_date DESC, table_name;
|
||
|
|
|