কম্পিউটার

ওভারফ্লো পরিচালনায় NO_UNSIGNED_SUBTRACT SQL মোডের ব্যবহার কী?


সক্রিয় SQL কঠোর মোডের ক্ষেত্রে, পূর্ণসংখ্যার মানের মধ্যে বিয়োগ যা একটি আনসাইনড টাইপ ডিফল্টভাবে একটি স্বাক্ষরবিহীন ফলাফল তৈরি করবে। কিন্তু ফলাফল নেতিবাচক হলে MySQL একটি ত্রুটি তৈরি করে। এটি নিম্নলিখিত উদাহরণের সাথে লক্ষ্য করা যেতে পারে -

mysql> SET sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Select CAST(0 AS UNSIGNED) -1;
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(cast(0 as unsigned) - 1)'

উপরের প্রশ্নের পরে ত্রুটি দেখায় যে এটি সংখ্যাসূচক গাণিতিক অভিব্যক্তির পরে একটি ওভারফ্লো৷

এখন, এটি NO_UNSIGNED_SUBTRACTION SQL মোড সক্ষম করার সাহায্যে পরিচালনা করা যেতে পারে৷ এই মোড সক্রিয় করার পরে ফলাফল একটি ত্রুটির পরিবর্তে -1 হবে।

mysql> Set sql_mode = 'NO_UNSIGNED_SUBTRACTION';
Query OK, 0 rows affected (0.00 sec)

mysql> Select CAST(0 AS UNSIGNED) -1;
+------------------------+
| CAST(0 AS UNSIGNED) -1 |
+------------------------+
|                     -1 |
+------------------------+
1 row in set (0.00 sec)

  1. MySQL IGNORE INSERT স্টেটমেন্টের ব্যবহার কি?

  2. SQL এ আপডেট কমান্ডের ব্যবহার কি?

  3. printf() এ %n এর ব্যবহার কি?

  4. পিএইচপিতে ini_set() এর ব্যবহার কী?