কম্পিউটার টিউটোরিয়াল

MySQL ডিলিমিটার এরর কবে হয়?

MySQL ডিলিমিটার এরর হয় যখন আপনি পাইপ ডিলিমিটার (|) সেমিকোলন (;) দিয়ে ব্যবহার করেন এবং MySQL সংস্করণ 8.0.12-র চেয়ে কম ব্যবহার করেন।

MySQL পাইপ (|) কে একটি ডিলিমিটার হিসেবে এবং সেমিকোলন (;) কে অন্য একটি ডিলিমিটার হিসেবে বিবেচনা করে। তাই MySQL ডিলিমিটারকে পাইপ এবং সেমিকোলন দিয়ে গুলিয়ে ফেলবেন না।

নোট: এখানে আমরা MySQL সংস্করণ 8.0.12 ব্যবহার করছি। পাইপ ডিলিমিটার সেমিকোলনের সাথে ঠিক কাজ করে। যদি আপনি 8.0.12-র চেয়ে পুরনো সংস্করণ ব্যবহার করেন, তবে এতে ডিলিমিটার এরর হবে।

MySQL ডিলিমিটারের কাজকর্ম নিচে দেওয়া হলো:

mysql> delimiter |; mysql> create procedure getSumOfTwoNumbers() 
-> begin 
-> select 2+3 as TotalValue; 
-> end ; 
-> |; Query OK, 0 rows affected (0.17 sec) mysql> delimiter ;

এখন CALL কমান্ড দিয়ে স্ট্রোড প্রসিডিউর কল করা যাক। কোয়েরিটি হলো:

mysql> call getSumOfTwoNumbers();

আউটপুট নিচে দেওয়া হলো:

+------------+ | TotalValue | +------------+ | 5 | +------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)

উপরের পাইপ ডিলিমিটার সেমিকোলনের সাথে অর্জন করবেন না কারণ MySQL-এ সেমিকোলন ডিফল্ট ডিলিমিটার যা MySQL-এ স্টেটমেন্টের শেষ নির্দেশ করে। তাই সেমিকোলন ব্যবহার করা হয় MySQL স্ট্রোড প্রসিডিউর থেকে বের হওয়ার সময় যখন আপনি একাধিক স্টেটমেন্ট লিখেন।

ডিলিমিটার পরিবর্তনের উদাহরণ নিচে দেওয়া হলো।

প্রথমে পাইপ ডিলিমিটার (|) ব্যবহার করা যাক। ডিলিমিটার পাইপ সেট করতে নিচের কোয়েরি ব্যবহার করুন।

mysql> DELIMITER |

স্ট্রোড প্রসিডিউর তৈরির কোয়েরি নিচে দেওয়া হলো:

mysql> DELIMITER | mysql> create procedure Demo() 
-> begin 
-> select 2*3 as TotalMultiplication; 
-> end ; 
-> | Query OK, 0 rows affected (0.12 sec)

এখন ডিলিমিটার সেমিকোলন দিয়ে পরিবর্তন করা যাক। ডিলিমিটার সেমিকোলন সেট করতে নিচের কোয়েরি ব্যবহার করুন।

কোয়েরিটি হলো:

mysql> delimiter ;

সারসংক্ষেপে, MySQL-এ DELIMITER কমান্ড দিয়ে স্টেটমেন্ট টার্মিনেটর পরিবর্তন করা হয়। স্ট্রোড প্রসিডিউর, ট্রিগার, ফাংশন তৈরির সময় একাধিক স্টেটমেন্ট থাকলে ডিফল্ট সেমিকোলন (;) বদলে অন্য ডিলিমিটার (যেমন |, //) ব্যবহার করা হয়। MySQL 8.0.12+ এ পাইপ (|) সেমিকোলনের সাথে ভালো কাজ করে।

  1. MySQL এরর #1046 - কোনো ডাটাবেস নির্বাচন করা হয়নি

  2. MySQL ডেটাবেস কোথায় সংরক্ষিত হয় (ডেটা ডিরেক্টরি অবস্থান)

  3. MySQL-এ DECIMAL(19,2) কলামে ইনসার্ট সময় TRUNCATE ব্যবহার করে মান সংরক্ষণ করা

  4. mysqld - MySQL সার্ভার