अगर डेटाबेस InnoDB है, तो आपको हटाने में शामिल होने की आवश्यकता नहीं है। केवल
DELETE FROM spawnlist WHERE spawnlist.type = "monster";
अन्य तालिकाओं में विदेशी कुंजियों के साथ लिंक किए गए सभी रिकॉर्ड को हटाने के लिए उपयोग किया जा सकता है, यह करने के लिए कि आपको पहले डिज़ाइन समय में अपनी तालिकाओं को लिंक करना होगा।
CREATE TABLE IF NOT EXIST spawnlist (
npc_templateid VARCHAR(20) NOT NULL PRIMARY KEY
)ENGINE=InnoDB;
CREATE TABLE IF NOT EXIST npc (
idTemplate VARCHAR(20) NOT NULL,
FOREIGN KEY (idTemplate) REFERENCES spawnlist(npc_templateid) ON DELETE CASCADE
)ENGINE=InnoDB;
यदि आप MyISAM का उपयोग करते हैं तो आप इस तरह से जुड़ने वाले रिकॉर्ड को हटा सकते हैं
DELETE a,b
FROM `spawnlist` a
JOIN `npc` b
ON a.`npc_templateid` = b.`idTemplate`
WHERE a.`type` = 'monster';
पहली पंक्ति में मैंने रिकॉर्ड को हटाने के लिए दो टेम्प टेबल को इनिशियलाइज़ किया है, दूसरी लाइन में मैंने अस्तित्व तालिका को बी और बी दोनों को सौंपा है लेकिन यहाँ मैंने दोनों टेबल को एक साथ कीवर्ड से जोड़ा है, और मैंने प्राथमिक और विदेशी कुंजी का मिलान किया है लिंक बनाने वाली दोनों तालिकाओं के लिए, अंतिम पंक्ति में मैंने हटाने के लिए फ़ील्ड द्वारा रिकॉर्ड फ़िल्टर किया है।