আমি টোকাকএক্স এপিআই দিয়ে লুয়াএসকিউএল ব্যবহার করে নীচের সারণিতে প্রবেশ করিয়ে দিচ্ছি।
CREATE TABLE `requests` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`ctg` VARCHAR(15) NOT NULL,
`msg` VARCHAR(250) NOT NULL,
`nick` VARCHAR(32) NOT NULL,
`filled` ENUM('Y','N') NOT NULL DEFAULT 'N',
`dated` DATETIME NOT NULL,
`filldate` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `nick_msg` (`nick`, `msg`),
UNIQUE INDEX `ctg_msg` (`ctg`, `msg`)
)
COMMENT='Requests from users in any of the categories.'
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
এখন, আমার সমস্যাটি হ'ল, যখন কোনও ব্যবহারকারী (প্রতিনিধিত্ব করে nick
) আবার একই অনুরোধটি সন্নিবেশ করানোর চেষ্টা করে, UNIQUE
সূচকটি পরীক্ষা করা হয় এবং স্ক্রিপ্টটি একটি মিথ্যা প্রত্যাবর্তন করে। এর ফলে আমার স্ক্রিপ্ট ব্যর্থ হয় এবং আমাকে স্ক্রিপ্টটি পুনরায় চালু করতে হয়।
INSERT ... ON DUPLICATE KEY
কমান্ডটিতে আমি এমন কিছু করতে পারি যাতে এটি কিছু না করে বা কমপক্ষে ক্ষেত্রে কোনও ত্রুটি না ফেরায়DUPLICATE KEY
?
অন্যথায় আমাকে dated
নতুন ক্ষেত্রটি সহ আমার ক্ষেত্রটি আপডেট করতে হবে DATETIME
।