"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إدراج البيانات في جداول MySQL متعددة في وقت واحد؟

كيفية إدراج البيانات في جداول MySQL متعددة في وقت واحد؟

تم النشر بتاريخ 2024-12-21
تصفح:295

How to Insert Data into Multiple MySQL Tables Simultaneously?

إدراج MySQL في جداول متعددة: تطبيع قاعدة البيانات

لا يتم دعم إدراج البيانات في جداول متعددة في وقت واحد في MySQL بشكل مباشر. ومع ذلك، هناك طرق بديلة لتحقيق هذه الوظيفة.

استخدام المعاملات

لضمان تناسق البيانات عبر الجداول، يوصى باستخدام المعاملات. تتضمن المعاملات سلسلة من الاستعلامات كوحدة واحدة، مما يضمن نجاح جميع الاستعلامات أو فشلها معًا.

إليك مثال على استخدام المعاملات:

BEGIN;
INSERT INTO users (username, password) VALUES('test', 'test');
INSERT INTO profiles (userid, bio, homepage) VALUES(LAST_INSERT_ID(),'Hello world!', 'http://www.stackoverflow.com');
COMMIT;

استرداد قيمة الزيادة التلقائية

لإدراج معرف الزيادة التلقائية من جدول المستخدمين في جدول الملفات الشخصية، يمكنك استخدام وظيفة LAST_INSERT_ID() . ومع ذلك، إذا تم إدراج عبارة الإدراج اللاحقة في جدول بعمود الزيادة التلقائية الخاص به، فسيتم تحديث قيمة LAST_INSERT_ID() إلى قيمة هذا الجدول.

للحفاظ على قيمة LAST_INSERT_ID() الأصلية، يمكنك تخزينها في متغير مخصص ضمن المعاملة.

باستخدام MySQL المتغيرات:

INSERT ...
SELECT LAST_INSERT_ID() INTO @mysql_variable_here;
INSERT INTO table2 (@mysql_variable_here, ...);

استخدام متغيرات اللغة:

// PHP example
$mysqli->query("INSERT INTO table1 ...");
$userid = $mysqli->insert_id;
$mysqli->query("INSERT INTO table2 ($userid, ...)");

تنبيه

من المهم مراعاة تناسق قاعدة البيانات عند الإدراج في جداول متعددة. في حالة انقطاعها، تضمن المعاملات تنفيذ جميع الاستعلامات بشكل كامل أو عدم تنفيذها على الإطلاق. بدون المعاملات، قد تؤدي الإدخالات الجزئية إلى حدوث تناقضات.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3