-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtuan2.sql
192 lines (152 loc) · 4.17 KB
/
tuan2.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
-- Trigger cập nhật tổng tiền của đơn hàng(order) sau khi thêm chi tiết đơn hàng
DELIMITER $$
CREATE TRIGGER details_insert
AFTER INSERT
ON order_details FOR EACH ROW
BEGIN
IF NEW.thanhtien IS NOT NULL THEN
update orders
set tongtien = tongtien+ NEW.thanhtien
where maDH = NEW.maDH;
END IF;
END$$
DELIMITER ;
-- Event chèn dữ liệu vào bảng order_details sau 10s
CREATE EVENT myevent
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 second
DO
insert into order_details values ('CTSP013', '1', '30000', '30000', 'MD001', 'SP001'
);
-- Tạo trigger không cho phép xóa thông tin của bảng chi tiết thông tin mà có thành tiền lớn hơn 100000
create trigger Trigger_afterDelete on ORDER_DETAILS
for delete
as
begin
Declare @temp int = 0
select @temp = COUNT(*) from Deleted
where Deleted.thanhtien > 100000
if (@temp>0)
Begin
Print N'Không được xóa đơn hàng có giá trên 100000'
ROLLBACK TRAN
End
end
Delete dbo.ORDER_DETAILS where maCTSP = 'CTSP009'
-- Event
CREATE EVENT EVENT_1
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
insert into CUSTOMER values ('KH006', N'Mai Đức Tin', '[email protected]', '0394272718', 'Lien Chieu'
);
-- tạo trigger thêm 1 bản ghi trong bảng ORDER ------
CREATE TRIGGER InsertORDERS
on ORDERS
for INSERT, UPDATE
as
begin
--Rollback tran
Print 'Thanh cong'
end
Insert into ORDERS(maDH,ngaydat,trangthai,tongtien,maKH,maTT)
values ( 'MD008' , '2021/12/20',N'Chưa xử lý',120000,'KH004','TT002')
select * from dbo.ORDERS
go
/*event*/
CREATE EVENT Myevent_Order
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 10 second
DO
insert into Orders values ( 'MD008' , '2021/12/20',N'Chưa xử lý',120000,'KH004','TT002')
);
-- tạo trigger thêm 1 bản ghi trong bảng ORDER ------
CREATE TRIGGER InsertORDERS
on ORDERS
for INSERT, UPDATE
as
begin
--Rollback tran
Print 'Thanh cong'
end
Insert into ORDERS(maDH,ngaydat,trangthai,tongtien,maKH,maTT)
values ( 'MD008' , '2021/12/20',N'Chưa xử lý',120000,'KH004','TT002')
select * from dbo.ORDERS
go
-- tạo trigger INSERT 1 bản ghi trong bảng CUSTOMER ------
CREATE TRIGGER InsertCUSTOMER
on CUSTOMER
for INSERT, UPDATE
as
begin
--Rollback tran
Print 'Thanh cong'
end
insert CUSTOMER
(maKH,hoten,email,sdt,diachi)
values('KH006','Lê Thị Trang','[email protected]','0987876577','Liên Chiểu')
select * from CUSTOMER
go
--event--
CREATE EVENT customer1
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
INSERT INTO CUSTOMER(maKH,hoten,email,sdt,diachi)
VALUES('KH007','Lê Văn C','[email protected]','1234567123','Ninh Bình');
-- tạo trigger xóa 1 bản ghi trong bảng order_details thì hiển thị tổng số bản ghi còn lại trong bảng order_details--
create trigger Trigger_1 on ORDER_DETAILS
for delete
AS
begin
select count(maCTSP) from ORDER_DETAILS
end
go
delete from ORDER_DETAILS
where maCTSP = 'CTSP010'
--event--
CREATE EVENT CUS1
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
INSERT INTO CUSTOMER(maKH,hoten,email,sdt,diachi)
VALUES('KH006','Nguyễn Văn B','[email protected]','1234567123','Quảng Trị');
--trigger
CREATE TRIGGER InsertProduct
on dbo.PRODUCT
for INSERT, UPDATE
as
begin
--Rollback tran
Print 'Thanh cong'
end
go
insert dbo.PRODUCT
(giaSP,maSP,mota,soluongSP,tenSP)
values(20000.0,N'SP006',N'Com ga',20,N'Com')
select * from PRODUCT
go
--event
CREATE EVENT test_1
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
INSERT INTO CUSTOMER(maKH,hoten,email,sdt,diachi)
VALUES('KH006',N'Phạm Anh','[email protected]','12321312',N'Hội An')
-- Tạo trigger không cho phép cập nhập thông tin giá sản phẩm bằng 0 trong bảng product
create trigger Trigger_afterupdate1 on PRODUCT
for update
as
begin
Declare @count int = 0
select @count = COUNT(*) from inserted
where inserted.giaSP = 0
if (@count>0)
Begin
Print N'Không được cập nhập giá sản phẩm bằng 0'
ROLLBACK TRAN
End
end
Delete dbo.ORDER_DETAILS where maCTSP = 'CTSP009'
update PRODUCT set giaSP = 10000
where maSP = 'SP005'
-- Event
CREATE EVENT event1
ON SCHEDULE AT CURRENT_TIMESTAMP
DO
insert into PAYMENT values ('TT003', N'Visa', 10000
);