Tạo trigger trg_Trades_AfterInsert trên bảng Trades, kích hoạt sau khi INSERT (AFTER INSERT).
Với mỗi giao dịch mới, tìm khách hàng sở hữu giao dịch (qua Orders.order_id → Orders.account_id → Accounts.customer_id) rồi cập nhật CustomerStats của khách hàng đó:
total_trade_value tăng thêm quantity * price của giao dịch;trade_count tăng thêm 1.Lưu ý SQL Server: trigger chạy một lần cho cả câu lệnh (dù chèn nhiều dòng) và dùng bảng ảo inserted — phải xử lý tập nhiều dòng, kể cả nhiều giao dịch cùng một khách hàng trong cùng câu INSERT.
MySQL: trigger FOR EACH ROW, dùng NEW.cột. (SQL Server không có BEFORE trigger — bài này dùng AFTER ở cả hai.)
Hệ thống chấm chèn 3 giao dịch (2 giao dịch thuộc cùng một khách hàng) rồi in customer_id, total_trade_value, trade_count của mọi khách hàng có trade_count > 0.
Bảng Trades, Orders, Accounts, CustomerStats.
customer_id, total_trade_value, trade_count (TAB), sắp theo customer_id.
Ví dụ:
Đầu vào:
Đầu ra:
2 51800000.00 4
5 220400000.00 5
6 150250000.00 3
8 19350000.00 2
11 45000000.00 1
12 116800000.00 3
14 5050000.00 1
16 703300000.00 6
17 48000000.00 1
18 9750000.00 1
19 13250000.00 1
20 25350000.00 2
22 430725000.00 9
23 106150000.00 3
24 75250000.00 3
25 50800000.00 4
26 101500000.00 2
27 186000000.00 1
29 4250000.00 1
30 127450000.00 4
31 25800000.00 3
32 204650000.00 5
33 31750000.00 3
35 256600000.00 4
36 422600000.00 4
37 195500000.00 3
38 151950000.00 6
39 100250000.00 3
40 27000000.00 1
Giải thích:
Đang tải editor...