اذهب إلى المحتوى

السؤال

نشر

لدي جدول على Mysql وبه Primary Key، وأريد إضافة حقل بحث يكون مساوي لقيمPrimary Key، وبالفعل أضفت حقل سيمته بـ originalid ، ثم الأمر:

UPDATE notes SET originalid = (SELECT MAX(id) FROM notes) where id = (SELECT MAX(id) FROM notes);

لكن حصل على الخطأ التالي:


    You can't specify target table 'notes' for update in FROM clause

فهل من حل للمشكل؟

Recommended Posts

  • 0
نشر

هناك طريقتين اثنتين:

الأولى باستخراج أكبر قيمة لـ id ، وذلك بترتيب قيمه تنازليا واختيارأول قيمة، ومن ثم ادخالها في الصف الجديد:

SELECT id INTO @maxid FROM notes ORDER BY id DESC LIMIT 1;
UPDATE notes SET originalid = @maxid where id = @maxid;

الطريقة الثانية، بنفس المبدأ لكن بطريقة مختلفة، أي باستعمال دالة MAX لاستخراج أكبر Id:

SELECT MAX(id) INTO @maxid FROM notes;
UPDATE notes SET originalid = @maxid where id = @maxid;

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...