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

MySQL-এ প্রাইমারি কী (Primary Key) ফিল্ডে NOT NULL যোগ করা প্রয়োজন নেই — কারণ এটি অটোমেটিক্যালি NOT NULL হয়


MySQL-এ প্রাইমারি কী কলামে এক্সট্রা NOT NULL লিখার প্রয়োজন নেই

MySQL-এ Primary Key হলো NOT NULL + UNIQUE এর কম্বিনেশন। তাই প্রাইমারি কী ডিক্লেয়ার করার সময় আলাদা করে NOT NULL লিখতে হয় না — MySQL অটোমেটিক্যালি এটিকে NOT NULL বানিয়ে দেয়।

উদাহরণ

টেবিল তৈরি (Id-এ NOT NULL লিখা নেই, শুধু PRIMARY KEY)

mysql> CREATE TABLE NotNullAddDemo (
    -> Id INT AUTO_INCREMENT,
    -> PRIMARY KEY(Id)
    -> );

টেবিল কাঠামো চেক (DESC)

mysql> DESC NotNullAddDemo;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| Id    | int(11) | NO   | PRI | NULL    | auto_increment |
+-------+---------+------+-----+---------+----------------+

দেখুন Null কলামে NO — অর্থাৎ এটি NOT NULL।

NULL ইনসার্ট চেষ্টা (AUTO_INCREMENT-এর কারণে কাজ করে)

mysql> INSERT INTO NotNullAddDemo VALUES(NULL);
mysql> INSERT INTO NotNullAddDemo VALUES(NULL);

এখন ১ ইনসার্ট করলে এরর (Duplicate entry)

mysql> INSERT INTO NotNullAddDemo VALUES(1);
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

কারণ: প্রথম দুটি NULL ইনসার্ট করলে AUTO_INCREMENT ১ এবং ২ অ্যাসাইন করেছে। তাই ১ ইনসার্ট করলে ডুপ্লিকেট হয়।

সঠিক মান ইনসার্ট

mysql> INSERT INTO NotNullAddDemo VALUES(3), (NULL);

ফলাফল

mysql> SELECT * FROM NotNullAddDemo;
+----+
| Id |
+----+
| 1  |
| 2  |
| 3  |
| 4  |
+----+

সারাংশ: প্রাইমারি কী-তে NOT NULL রিডান্ডেন্ট। MySQL নিজে হ্যান্ডেল করে।

  1. MySQL-এ ব্ল্যাঙ্ক (খালি স্ট্রিং) কলাম ভ্যালুকে NULL হিসেবে বইল করা (UPDATE + TRIM/LENGTH)

  2. MySQL에서 기본 키(Primary Key) 삭제하기

  3. MySQL-এ IF() ফাংশন দিয়ে NOT NULL মান માટે ১ এবং NULL জন্য ০ দেখানো

  4. MySQL-এ প্রাইমারি কী রিসেট করা (TRUNCATE + ALTER TABLE)