উত্তর:
ALTER TABLE `votes` ADD UNIQUE `unique_index`(`user`, `email`, `address`);
আমার একটি মাইএসকিউএল টেবিল রয়েছে:
CREATE TABLE `content_html` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_box_elements` int(11) DEFAULT NULL,
`id_router` int(11) DEFAULT NULL,
`content` mediumtext COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_box_elements` (`id_box_elements`,`id_router`)
);
এবং অনন্য কী কেবল প্রত্যাশার মতোই কাজ করে, এটি id_box_e উপাদান এবং id_router এর একাধিক NULL সারি মঞ্জুরি দেয়।
আমি মাইএসকিউএল 5.1.42 চালাচ্ছি, তাই সম্ভবত উপরে আলোচিত ইস্যুতে কিছু আপডেট ছিল। ভাগ্যক্রমে এটি কাজ করে এবং আশা করি এটি সেভাবেই থাকবে।
মাল্টি কলামের অনন্য সূচীগুলি মাইএসকিউএলে কাজ করে না যদি আপনার ন্যূনতম মান থাকে তবে মাইএসকিউএল NULL কে একটি অনন্য মান হিসাবে বিবেচনা করে এবং কমপক্ষে বর্তমানে বহু-কলাম সূচকগুলিতে কাজ করার কোনও যুক্তি নেই। হ্যাঁ আচরণটি পাগল, কারণ এটি বহু-কলাম সূচকের বৈধ অ্যাপ্লিকেশনগুলিকে প্রচুর পরিমাণে সীমাবদ্ধ করে, তবে এটি যা হয় ... এখনও হিসাবে, এটি একটি বাগ যা মাইএসকিউএলে "ঠিক করবে না" দিয়ে স্ট্যাম্প করা হয়েছে is বাগ ট্র্যাক ...
ENGINE BDB
, এবং, 2) এই হয় নথিভুক্ত , ব্যবহার যদিও এই প্রোগ্রামটিতে না নথিভুক্ত স্পষ্টত যথেষ্ট দেওয়া কিভাবে এটি বিস্ময়কর / অপ্রীতিকর হতে পারে। মাইএসকিউএল বাগ 25544 দেখুন bugs.mysql.com/bug.php?id=25544 আলোচনার জন্য।
আপনি কি এই চেষ্টা করেছেন?
UNIQUE KEY `thekey` (`user`,`email`,`address`)
UNIQUE KEY
thekey` ( user
, email
, address
) `। আমি মাইএসকিউএল সংস্করণ 5.5.24 ব্যবহার করছি আপনি যদি এটি ব্যবহার করেন তবে আপনি এটি পিএইচপিএমওয়াইডমিনে সেট করতে পারেন। আমি পিএমএর 3.5.1 সংস্করণ ব্যবহার করছি।
এটি mysql 5.5.32 সংস্করণে কাজ করে
ALTER TABLE `tablename` ADD UNIQUE (`column1` ,`column2`);
মাইএসকিউএল 5 বা উচ্চতর এই জাতীয় আচরণ করে (আমি কেবল পরীক্ষা করেছি):
উদাহরণ: PRODUCT_NAME, PRODUCT_VERSION 'গ্লাস', নাল 'গ্লাস', নাল 'ওয়াইন', 1
এখন যদি আপনি আবার '' ওয়াইন '1) toোকানোর চেষ্টা করেন তবে এটি একটি সীমাবদ্ধতা লঙ্ঘনের রিপোর্ট করবে আশা করি এটি সাহায্য করে
আপনি মাধ্যমে একাধিক-কলাম অনন্য ইনডেক্স যোগ করতে পারেন পিএইচপি মাই এডমিন । (আমি ৪.০.৪ সংস্করণে পরীক্ষা করেছি)
আপনার লক্ষ্য সারণির জন্য কাঠামো পৃষ্ঠায় নেভিগেট করুন । কলামগুলির মধ্যে একটিতে একটি অনন্য সূচক যুক্ত করুন। আপনার সদ্য যুক্ত হওয়া অনন্য সূচকটি দেখতে কাঠামো পৃষ্ঠার নীচে সূচকগুলির তালিকাটি প্রসারিত করুন । সম্পাদনা আইকনটিতে ক্লিক করুন এবং নিম্নলিখিত সংলাপে আপনি সেই অনন্য সূচকে অতিরিক্ত কলাম যুক্ত করতে পারেন।
আমি এটি এইভাবে করি:
CREATE UNIQUE INDEX index_name ON TableName (Column1, Column2, Column3);
একটি অনন্য জন্য আমার সম্মেলন index_name
হয় TableName_Column1_Column2_Column3_uindex
।
অনন্য সূচক যুক্ত করার জন্য নিম্নলিখিতগুলি প্রয়োজনীয়:
1)
টেবিলের নাম 2) সূচি_নাম
3) কলামগুলিতে আপনি সূচি যোগ করতে চান
ALTER TABLE `tablename`
ADD UNIQUE index-name
(`column1` ,`column2`,`column3`,...,`columnN`);
আপনার ক্ষেত্রে আমরা নিম্নলিখিত হিসাবে অনন্য সূচক তৈরি করতে পারি:
ALTER TABLE `votes`ADD
UNIQUE <votesuniqueindex>;(`user` ,`email`,`address`);
আপনি যদি মাইএসকিএলে টেবিল তৈরি করে থাকেন তবে নিম্নলিখিতগুলি ব্যবহার করুন:
create table package_template_mapping (
mapping_id int(10) not null auto_increment ,
template_id int(10) NOT NULL ,
package_id int(10) NOT NULL ,
remark varchar(100),
primary key (mapping_id) ,
UNIQUE KEY template_fun_id (template_id , package_id)
);
প্রথমে বিদ্যমান নকলগুলি থেকে মুক্তি পান
delete a from votes as a, votes as b where a.id < b.id
and a.user <=> b.user and a.email <=> b.email
and a.address <=> b.address;
তারপরে অনন্য সীমাবদ্ধতা যুক্ত করুন
ALTER TABLE votes ADD UNIQUE unique_index(user, email, address);
সাথে সীমাবদ্ধতা যাচাই করুন
SHOW CREATE TABLE votes;
মনে রাখবেন যে তাদের ব্যবহারকারীর, ইমেল, ঠিকানাটি অনন্য হিসাবে বিবেচিত হবে যদি তাদের কারও মধ্যে এটির নালিকা থাকে।
PostgreSQL এর জন্য ... এটি সূচক সহ আমার পক্ষে কাজ করে না; এটি আমাকে একটি ত্রুটি দিয়েছে, তাই আমি এটি করেছি:
alter table table_name
add unique(column_name_1,column_name_2);
পোস্টগ্র্যাসএসকিউএল অনন্য সূচককে তার নিজস্ব নাম দিয়েছে। আমার ধারণা আপনি টেবিলের বিকল্পগুলিতে সূচকের নাম পরিবর্তন করতে পারেন, যদি এটি পরিবর্তন করা প্রয়োজন ...