যখন আমরা একই কলামে একাধিকবার একটি অনন্য সীমাবদ্ধতা যুক্ত করব তখন MySQL সেই কলামে সূচী তৈরি করবে যে অনেকবার আমরা অনন্য সীমাবদ্ধতা যুক্ত করেছি৷
উদাহরণ
ধরুন আমাদের টেবিলটি 'কর্মচারী' আছে যেখানে আমাদের 'এমপিড' কলামে অনন্য সীমাবদ্ধতা রয়েছে। এটি নিম্নলিখিত ক্যোয়ারী −
আকারে চেক করা যেতে পারেmysql> Describe employee; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | empid | int(11) | YES | UNI | NULL | | | first_name | varchar(20) | YES | | NULL | | | last_name | varchar(20) | YES | | NULL | | +------------+-------------+------+-----+---------+-------+ 3 rows in set (0.12 sec)
এখন, যখন আমরা ক্যোয়ারীটি SHOW INDEX চালাই, তখন এটি সূচকের নাম দেয়, শুধুমাত্র একটি সূচক, কলাম 'empid'-এ তৈরি৷
mysql> Show index from employee\G; *************************** 1. row *************************** Table: employee Non_unique: 0 Key_name: empid Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.00 sec)
নিম্নলিখিত প্রশ্নের সাহায্যে আমরা একই কলাম 'empid' -
-এ আরও একটি অনন্য সীমাবদ্ধতা যোগ করেছিmysql> Alter table employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.21 sec) Records: 0 Duplicates: 0 Warnings: 0
এখন, যখন আমরা ক্যোয়ারীটি SHOW INDEX চালাই, তখন এটি ইনডেক্সের নাম দেয়, দুটি সূচী 'empid' এবং 'empid_2', 'empid' কলামে তৈরি৷
mysql> Show index from employee12\G; *************************** 1. row *************************** Table: employee Non_unique: 0 Key_name: empid Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: *************************** 2. row *************************** Table: employee Non_unique: 0 Key_name: empid_2 Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 2 rows in set (0.00 sec)
নিম্নলিখিত প্রশ্নের সাহায্যে আমরা একই কলাম 'empid' -
-এ আরও একটি অনন্য সীমাবদ্ধতা যোগ করেছিmysql> Alter table employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.21 sec) Records: 0 Duplicates: 0 Warnings: 0
এখন, যখন আমরা ক্যোয়ারীটি SHOW INDEX চালাই, তখন এটি সূচকের নাম দেয়, তিনটি সূচী 'empid' এবং 'empid_2', 'empid_3' কলাম 'empid'-এ তৈরি করা হয়েছে৷
mysql> Alter table employee ADD UNIQUE(empid); Query OK, 0 rows affected (0.30 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> Show index from employee\G; *************************** 1. row *************************** Table: employee Non_unique: 0 Key_name: empid Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: *************************** 2. row *************************** Table: employee Non_unique: 0 Key_name: empid_2 Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: *************************** 3. row *************************** Table: employee Non_unique: 0 Key_name: empid_3 Seq_in_index: 1 Column_name: empid Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 3 rows in set (0.00 sec)
এই অর্থে, আমরা বলতে পারি যে MySQL কলামের সংখ্যায় অনন্য সূচক তৈরি করবে যতবার আমরা সেই কলামে অনন্য সীমাবদ্ধতা যোগ করেছি।