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

MySQL সিনট্যাক্স এরর (Error 1064) ফিক্স করা

এই ধরনের এরর ভুল সিনট্যাক্স ব্যবহার করলে হয়। একটি উদাহরণ দেখা যাক যেখানে DATE(100) ভুলভাবে ব্যবহার করা হয়েছে।

ভুল সিনট্যাক্স:

mysql> create table DemoTable689(
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName varchar(100),
    UserLoginDate date(100) NOT NULL
);

এরর আউটপুট:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(100) NOT NULL )' at line 5

কারণ: DATE ডেটা টাইপে দৈর্ঘ্য নির্দিষ্ট করা যায় না (INT, VARCHAR এর মত নয়)।

সঠিক সিনট্যাক্স:

mysql> create table DemoTable689(
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName varchar(100),
    UserLoginDate date NOT NULL
);
Query OK, 0 rows affected (0.68 sec)

রেকর্ড ইনসার্ট করি:

mysql> insert into DemoTable689(UserName,UserLoginDate) values('John', DATE(NOW()));
Query OK, 1 row affected (0.40 sec)
mysql> insert into DemoTable689(UserName,UserLoginDate) values('Chris', '2018-01-21');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable689(UserName,UserLoginDate) values('Robert', CURDATE());
Query OK, 1 row affected (0.20 sec)

সব রেকর্ড দেখি (এখন এরর নেই):

mysql> select *from DemoTable689;

আউটপুট:

+--------+----------+---------------+
| UserId | UserName | UserLoginDate |
+--------+----------+---------------+
| 1      | John     | 2019-07-21    |
| 2      | Chris    | 2018-01-21    |
| 3      | Robert   | 2019-07-21    |
+--------+----------+---------------+
3 rows in set (0.00 sec)

টিপ: এরর মেসেজে বলা লাইন নম্বর এবং 'near' এর পরে যেই অংশটি থাকে, সেটা চেক করলে সমস্যা দ্রুত বোঝা যায়।

  1. MySQL টেবিলের জন্য 'user' শব্দ ব্যবহার করা যাবে কি?

  2. MySQL-এ ZEROFILL সঠিকভাবে ব্যবহার করুন (ERROR 1064 সমাধান)

  3. MySQL-এ ERROR 1093 সমাধান: সাবকোয়েরিতে ডিরাইভড টেবিল ব্যবহার করে নিজের টেবিল ডিলিট/আপডেট করুন

  4. MySQL Error #1064 সমাধান - TYPE=MyISAM এর পরিবর্তে ENGINE ব্যবহার করুন