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

MySQL 8.0-এ 'rank' রিজার্ভড ওয়ার্ড: কলাম নাম হিসেবে ব্যাকটিকস (`rank`) ব্যবহার করুন

MySQL 8.0.2+ সংস্করণে RANK() উইন্ডো ফাংশন যোগ হওয়ার সাথে সাথে rank একটি রিজার্ভড কীওয়ার্ড হয়ে গেছে। কলাম নাম হিসেবে ব্যবহার করতে হলে অবশ্যই ব্যাকটিক (`) দিয়ে ঘেরতে হয়।

MySQL ভার্সন চেক

mysql> SELECT VERSION();
+-----------+
| version() |
+-----------+
| 8.0.12    |
+-----------+

❌ ব্যাকটিকস ছাড়া (এরর)

mysql> CREATE TABLE DemoTable1596 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> rank INT
    -> );
ERROR 1064 (42000): You have an error in your SQL syntax near 'rank int' at line 5

✅ ব্যাকটিকস দিয়ে (সফল)

mysql> CREATE TABLE DemoTable1596 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20),
    -> `rank` INT
    -> );
Query OK, 0 rows affected (0.51 sec)

ডেটা ইনসার্ট ও সিলেক্ট (ব্যাকটিকস সহ)

mysql> INSERT INTO DemoTable1596(StudentName, `rank`) VALUES('Bob', 4567);
mysql> INSERT INTO DemoTable1596(StudentName, `rank`) VALUES('David', 1);
mysql> SELECT * FROM DemoTable1596;

আউটপুট:

+----+-------------+------+
| Id | StudentName | rank |
+----+-------------+------+
| 1  | Bob         | 4567 |
| 2  | David       | 1    |
+----+-------------+------+

MySQL 8.0 এর অন্যান্য নতুন রিজার্ভড ওয়ার্ড: GROUPS, EXCLUDE, FOLLOWING, PRECEDING, RANK, ROW_NUMBER, NTILE, LEAD, LAG, FIRST_VALUE, LAST_VALUE, NTH_VALUE, ... (মূলত উইন্ডো ফাংশন সংক্রান্ত)।

সেরা অনুশীলন: রিজার্ভড ওয়ার্ড কলাম/টেবিল নাম হিসেবে এড়ান। আবশ্যক হলে সব জায়গায় ব্যাকটিক (`) ব্যবহার করুন। SHOW RESERVED WORDS; দিয়ে তালিকা দেখুন।

  1. Java-এ MySQL ResultSet থেকে কলাম নাম পাওয়া

  2. MySQL টেবিলে 'year' রিজার্ভড ওয়ার্ড কী কলাম নাম হিসেবে ব্যবহার করা যায় কিনা?

  3. MySQL-এ রিজার্ভড ওয়ার্ড 'index' কলাম নাম হিসেবে ব্যবহার করা (ব্যাকটিক)

  4. MySQL-এ ব্যাকটিকস (`) ব্যবহার করে সংখ্যাসূচক ডাটাবেস নাম তৈরি করুন