আপনি যদি দেখতে চান যে এর অর্থ কী, এখানে সমস্ত কিছুর একটি ধাক্কা:
CREATE TABLE `users_partners` (
`uid` int(11) NOT NULL DEFAULT '0',
`pid` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`uid`,`pid`),
KEY `partner_user` (`pid`,`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
প্রাথমিক কীটি এই দ্রুত রেফারেন্স সারণীর উভয় কলামের উপর ভিত্তি করে। একটি প্রাথমিক কীটির জন্য অনন্য মান প্রয়োজন।
চল শুরু করি:
INSERT INTO users_partners (uid,pid) VALUES (1,1);
...1 row(s) affected
INSERT INTO users_partners (uid,pid) VALUES (1,1);
...Error Code : 1062
...Duplicate entry '1-1' for key 'PRIMARY'
INSERT IGNORE INTO users_partners (uid,pid) VALUES (1,1);
...0 row(s) affected
INSERT INTO users_partners (uid,pid) VALUES (1,1) ON DUPLICATE KEY UPDATE uid=uid
...0 row(s) affected
দ্রষ্টব্য, উপরেরটি নিজের মতো করে কলাম স্থাপন করে অতিরিক্ত অতিরিক্ত কাজ সংরক্ষণ করেছে, আসলে কোনও আপডেটের প্রয়োজন নেই
REPLACE INTO users_partners (uid,pid) VALUES (1,1)
...2 row(s) affected
এবং এখন কয়েকটি একাধিক সারি পরীক্ষা:
INSERT INTO users_partners (uid,pid) VALUES (1,1),(1,2),(1,3),(1,4)
...Error Code : 1062
...Duplicate entry '1-1' for key 'PRIMARY'
INSERT IGNORE INTO users_partners (uid,pid) VALUES (1,1),(1,2),(1,3),(1,4)
...3 row(s) affected
অন্য কোনও বার্তা কনসোলে তৈরি করা হয়নি, এবং এটিতে এখন টেবিলের ডেটাতে 4 টি মান রয়েছে। আমি (1,1) ব্যতীত সমস্ত কিছুই মুছে ফেলেছি যাতে আমি একই খেলার ক্ষেত্র থেকে পরীক্ষা করতে পারি
INSERT INTO users_partners (uid,pid) VALUES (1,1),(1,2),(1,3),(1,4) ON DUPLICATE KEY UPDATE uid=uid
...3 row(s) affected
REPLACE INTO users_partners (uid,pid) VALUES (1,1),(1,2),(1,3),(1,4)
...5 row(s) affected
তাই সেখানে যদি আপনি এটি আছে। যেহেতু এগুলি সমস্তই কোনও তাত্পর্য টেবিলে প্রায় কোনও ডেটা এবং উত্পাদনে না করে সম্পাদিত হয়েছিল, তাই মৃত্যুদণ্ড কার্যকর করার সময়টি ছিল অণুবীক্ষণিক এবং অপ্রাসঙ্গিক। রিয়েল-ওয়ার্ল্ড ডেটা সহ যে কেউ এতে অবদান রাখায় স্বাগত হওয়ার চেয়ে আরও বেশি কিছু হবে।