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

MySQL-এ টেবিল খালি থাকলে ইনসার্ট করা (INSERT ... WHERE NOT EXISTS)


MySQL-এ সাবকোয়েরি এবং NOT EXISTS ব্যবহার করে শুধু খালি টেবিলে ইনসার্ট করা

যদি টেবিলটি সম্পূর্ণ খালি থাকে, তবেই একটি রেকর্ড ইনসার্ট করতে চাইলে INSERT ... SELECT ... WHERE NOT EXISTS প্যাটার্ন ব্যবহার করা হয়।

সিনট্যাক্স

INSERT INTO yourTableName(yourColumnName) 
SELECT 'anyValue' 
WHERE NOT EXISTS (SELECT * FROM yourTableName);

উদাহরণ

টেবিল তৈরি

mysql> CREATE TABLE ExecuteInsertDemo (Name VARCHAR(20));

প্রথমে একটি রেকর্ড ইনসার্ট (টেবিল আর খালি নয়)

mysql> INSERT INTO ExecuteInsertDemo VALUES('John');

শর্তসাপেক্ষ ইনসার্ট চেষ্টা (টেবিল খালি নয়, তাই ইনসার্ট হবে না)

mysql> INSERT INTO ExecuteInsertDemo(Name) 
    -> SELECT 'Larry' 
    -> WHERE NOT EXISTS (SELECT * FROM ExecuteInsertDemo);
Query OK, 0 rows affected (0.00 sec)

টেবিল খালি করা (TRUNCATE)

mysql> TRUNCATE TABLE ExecuteInsertDemo;

আবার শর্তসাপেক্ষ ইনসার্ট (এবার টেবিল খালি, তাই ইনসার্ট হবে)

mysql> INSERT INTO ExecuteInsertDemo(Name) 
    -> SELECT 'Larry' 
    -> WHERE NOT EXISTS (SELECT * FROM ExecuteInsertDemo);
Query OK, 1 row affected (0.33 sec)

ফলাফল যাচাই

mysql> SELECT * FROM ExecuteInsertDemo;
+-------+
| Name  |
+-------+
| Larry |
+-------+

ব্যবহার ক্ষেত্র: কনফিগারেশন টেবিল, সেটিংস টেবিল ইত্যাদিতে ডিফল্ট রেকর্ড শুধু একবার ইনসার্ট করতে এই প্যাটার্ন খুব কাজে লাগে।

  1. MySQL-এ UNIQUE কনস্ট্রেইন্ট দিয়ে ডুপ্লিকেট বাদ দিয়ে ইনসার্ট করা

  2. একটি MySQL কোয়েরিতে টেম্পোরারি টেবিলে একাধিক মান ইনসার্ট করা

  3. MySQL-এ SELECT কুয়েরি দিয়ে INSERT করা (INSERT ... SELECT)

  4. MySQL টেবিলে JSON ডেটা ইনসার্ট করার পদ্ধতি