ডিফল্ট ব্যতীত অন্য ডিলিমিটারগুলি ;
সাধারণত ফাংশন, সঞ্চিত পদ্ধতি এবং ট্রিগারগুলির সংজ্ঞা দেওয়ার সময় ব্যবহৃত হয় যেখানে আপনাকে একাধিক বিবৃতি সংজ্ঞায়িত করতে হবে। আপনি একটি পৃথক ডিলিমিটার $$
সংজ্ঞায়িত করেন যা পুরো প্রক্রিয়াটির সমাপ্তি সংজ্ঞায়িত করতে ব্যবহৃত হয় তবে এর অভ্যন্তরে পৃথক বিবৃতি প্রতিটি দ্বারা সমাপ্ত হয় ;
। এইভাবে, যখন mysql
ক্লায়েন্টে কোডটি চালানো হয় তখন ক্লায়েন্টটি সম্পূর্ণ পদ্ধতিটি কোথায় শেষ হয় তা বলতে পারে এবং অভ্যন্তরের স্বতন্ত্র বিবৃতিগুলি সম্পাদন করার পরিবর্তে ইউনিট হিসাবে এটি কার্যকর করতে পারে।
নোট করুন যে DELIMITER
কীওয়ার্ডটি কমান্ড লাইন mysql
ক্লায়েন্টের (এবং কিছু অন্যান্য ক্লায়েন্ট) কেবল একটি নিয়মিত মাইএসকিউএল ভাষা বৈশিষ্ট্য নয় a আপনি মাইএসকিউএল এ কোনও প্রোগ্রামিং ল্যাঙ্গুয়েজ এপিআইয়ের মাধ্যমে পাস করার চেষ্টা করলে এটি কাজ করবে না। পিএইচপিএমআইএডমিনের মতো আরও কিছু ক্লায়েন্টের অ-ডিফল্ট ডেলিফিটর নির্দিষ্ট করার জন্য অন্যান্য পদ্ধতি রয়েছে।
উদাহরণ:
DELIMITER $$
/* This is a complete statement, not part of the procedure, so use the custom delimiter $$ */
DROP PROCEDURE my_procedure$$
/* Now start the procedure code */
CREATE PROCEDURE my_procedure ()
BEGIN
/* Inside the procedure, individual statements terminate with ; */
CREATE TABLE tablea (
col1 INT,
col2 INT
);
INSERT INTO tablea
SELECT * FROM table1;
CREATE TABLE tableb (
col1 INT,
col2 INT
);
INSERT INTO tableb
SELECT * FROM table2;
/* whole procedure ends with the custom delimiter */
END$$
/* Finally, reset the delimiter to the default ; */
DELIMITER ;
DELIMITER
এটি সমর্থন না করে এমন কোনও ক্লায়েন্টের সাথে ব্যবহার করার চেষ্টা করা এটি সার্ভারে প্রেরণা সৃষ্টি করবে, যা সিনট্যাক্স ত্রুটির প্রতিবেদন করবে। উদাহরণস্বরূপ, পিএইচপি এবং মাইএসকিউএলি ব্যবহার:
$mysqli = new mysqli('localhost', 'user', 'pass', 'test');
$result = $mysqli->query('DELIMITER $$');
echo $mysqli->error;
এর সাথে ত্রুটিগুলি:
আপনার এসকিউএল সিনট্যাক্সে আপনার একটি ত্রুটি রয়েছে; লাইন 1 এ 'DELIMITER $$' এর কাছাকাছি ডান সিনট্যাক্স ব্যবহারের জন্য আপনার মাইএসকিউএল সার্ভার সংস্করণের সাথে সম্পর্কিত ম্যানুয়ালটি পরীক্ষা করুন