• 0

كيف أستعمل 'not exists 'على Mysql؟

على قاعدة بيانات من نوع Mysql تحتوي على أكثر من 14 مليون قيمة، أريد إدخال بعض القيم الجديدة، لكن ما أريده قبل ذلك هو التأكد من عدم وجود قيم مشابهة للجديدة، مما جعلني أفكر في استعمال not exisits لتفادي التكرار، فكيف أتمكن من استعمالها؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

استعمل : INSERT IGNORE INTO table والتي مهمتها إدخال القيم في الجدول بعد التأكد من عدم وجودها سلفاً، وفي حالة وجود قيم سابقة تُلغى عملية إدخال القيم الحالية ليتم الانتقال إلى القيم التالية.

مثال:

  • إنشاء الجدول:
CREATE TABLE `transcripts` (
 `ensembl_transcript_id` varchar(20) NOT NULL,
 `transcript_chrom_start` int(10) unsigned NOT NULL,
 `transcript_chrom_end` int(10) unsigned NOT NULL,
 PRIMARY KEY  (`ensembl_transcript_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  • استعمال Insert Ignore Into Table:
INSERT IGNORE INTO `transcripts`
SET `ensembl_transcript_id` = 'ENSORGT00000000001',
`transcript_chrom_start` = 12345,
`transcript_chrom_end` = 12678;
  • أيضا يمكن استعمال INSERT … ON DUPLICATE KEY UPDATE والتي من شأنها تغيير القيم في حالة تواجد قيمة شبيهة بها، وهذا مثال تطبيقي:
INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE table SET c=c+1 WHERE a=1;

في حال كانت قيم الحقول a,b,c هي 1,2,3 موجودة مسبقا في الجدول، سيتم تغييرها بإضافة 1 إلى قيمة الحقل c، وهذا ما تعنيه :

 ON DUPLICATE KEY UPDATE c=c+1;

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن