You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
اسکریپت های `SQL` بر خلاف کوئری ها به جای خروجی دادن به شما در دیتابیس تغییر ایجاد میکنند.
176
206
@@ -180,6 +210,10 @@ UPDATE users SET users.admin_id = 3
180
210
WHEREusers.admin_id=6;
181
211
```
182
212
213
+
::: tip نکته
214
+
در نمونه بالا کاربران ادمینی که آیدی او در تیبل دیتابیس 6 هست به ادمینی که آیدی او 3 هست منتقل شده است.
215
+
:::
216
+
183
217
- غیر فعال کردن تمام کاربران یک ادمین خاص
184
218
```sql
185
219
UPDATE users SETusers.status='disabled'
@@ -488,6 +522,34 @@ END //
488
522
DELIMITER ;
489
523
```
490
524
525
+
```sql
526
+
DELIMITER //
527
+
528
+
CREATETRIGGERLimit_Admin_TotalData_Update
529
+
BEFORE UPDATEON users
530
+
FOR EACH ROW
531
+
BEGIN
532
+
DECLARE total_data_limit BIGINT;
533
+
534
+
-- Calculate the total data limit of all users created by the admin
535
+
SELECTSUM(data_limit) INTO total_data_limit
536
+
FROM users
537
+
WHERE admin_id =1;
538
+
539
+
-- Check if the total data limit exceeds or equals 1 TB
540
+
IF total_data_limit >= (1*1024*1024*1024*1024) THEN
541
+
SIGNAL SQLSTATE '45000'
542
+
SET MESSAGE_TEXT ='Admin has reached the total data limit.';
543
+
END IF;
544
+
END //
545
+
546
+
DELIMITER ;
547
+
```
548
+
549
+
::: tip نکته
550
+
تریگر اول برای ایجاد محدودیت هنگام ساخت کاربر و تریگر دوم برای ایجاد محدودیت هنگام ویرایش هست، در نتیجه اگر قصد دارید برای ادمین محدودیت حجم بگذارید، لازم است هر دو تریگر را متناسب با میزان محدودیت دلخواه وارد کنید.
551
+
:::
552
+
491
553
::: tip نکته
492
554
این تریگر حجم معین شده را برای ادمین موردنظر محدود میکند نه حجم مصرفی، به این معنا که جمع کل حجم تعیین شده برای کاربرهای ادمین باید کمتر یا مساوی با لیمیت تعیین شده توسط شما باشد. حجم پیش فرض در تریگر 1 ترابایت تعیین شده که با تغییر عدد 1 میتوانید آن را تغییر دهید.
0 commit comments