MySQL 5.7+ এ (জেনারেটেড কলাম ফিচার) CREATE TABLE স্টেটমেন্টে সরাসরি CHAR_LENGTH() ফাংশন ব্যবহার করে একটি কলামের ক্যারেক্টার সংখ্যা অন্য একটি কলামে অটোমেটিক্যালি সংরক্ষণ করা যায়।
টেবিল তৈরি (জেনারেটেড কলাম সহ)
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Title VARCHAR(200),
-> `Number_of_characters` INT AS (CHAR_LENGTH(Title))
-> );
নোট: AS (CHAR_LENGTH(Title)) এটি একটি VIRTUAL GENERATED COLUMN। এটি ফিজিক্যালি স্টোর হয় না, রিড সময় ক্যালকুলেট হয়। STORED কীওয়ার্ড দিয়ে ফিজিক্যালি স্টোর করাও যাবে।
ডেটা ইনসার্ট
mysql> INSERT INTO DemoTable(Title) VALUES('Introduction To MySQL');
mysql> INSERT INTO DemoTable(Title) VALUES('Introduction To Java');
mysql> INSERT INTO DemoTable(Title) VALUES('Introduction To MongoDB');
ফলাফল (Number_of_characters অটোমেটিক্যালি ক্যালকুলেট হয়েছে)
mysql> SELECT * FROM DemoTable;
+----+-------------------------+----------------------+
| Id | Title | Number_of_characters |
+----+-------------------------+----------------------+
| 1 | Introduction To MySQL | 21 |
| 2 | Introduction To Java | 20 |
| 3 | Introduction To MongoDB | 23 |
+----+-------------------------+----------------------+
ব্যাখ্যা:
- 'Introduction To MySQL' - ২১ ক্যারেক্টার (স্পেসসহ)
- 'Introduction To Java' - ২০ ক্যারেক্টার
- 'Introduction To MongoDB' - ২৩ ক্যারেক্টার
ব্যবহার ক্ষেত্র: সার্চ অপ্টিমাইজেশন, ভ্যালিডেশন, রিপোর্টিং-এ খুব উপকারী। ইনসার্ট/আপডেট সময় ম্যানুয়ালি কাউন্ট করতে হয় না।