इससे कोई फर्क नहीं पड़ना चाहिए, यह वही वाक्यविन्यास है। बस सुनिश्चित करें कि आपके पास कॉलम के रूप में निर्दिष्ट दोनों कुंजियाँ हैं। उदाहरण के लिए:
REPLACE INTO `my_table` ( `key1`, `key2`, `othercolumn1` /* , ... */ )
VALUES ( 'widgets', 14, 'Blue widget with purple trim' );
संपादित करें
यह सुनिश्चित करने के लिए कि मैं आपके डेटा को नष्ट करने वाला नहीं था, यह मेरा परीक्षण है जो मैंने अपने परीक्षण डेटाबेस में चलाया था। निःसंदेह, यदि आप सुनिश्चित नहीं हैं, तो मैं आपको इसे आज़माने के लिए प्रोत्साहित करता हूँ!
CREATE SCHEMA `my_testdb`;
USE `my_testdb`;
CREATE TABLE `my_table` (
`key1` VARCHAR(20) NOT NULL,
`key2` INTEGER NOT NULL,
`othercolumn1` VARCHAR(50),
CONSTRAINT PRIMARY KEY (`key1`, `key2`) );
REPLACE INTO `my_table` ( `key1`, `key2`, `othercolumn1` )
VALUES ( 'widgets', 14, 'Green widget with fuchsia trim' );
REPLACE INTO `my_table` ( `key1`, `key2`, `othercolumn1` )
VALUES ( 'widgets', 15, 'Yellow widget with orange trim' );
REPLACE INTO `my_table` ( `key1`, `key2`, `othercolumn1` )
VALUES ( 'thingamabobs', 14, 'Red widget with brown trim' );
REPLACE INTO `my_table` ( `key1`, `key2`, `othercolumn1` )
VALUES ( 'widgets', 14, 'Blue widget with purple trim' );
SELECT * FROM `my_table`;
यह मेरा परिणाम है:
key1 key2 othercolumn1
widgets 14 Blue widget with purple trim
widgets 15 Yellow widget with orange trim
thingamabobs 14 Red widget with brown trim
एक अन्य संपादन
मुझे लगता है कि मैं देख रहा हूं कि आप दस्तावेज़ीकरण में किस बारे में बात कर रहे हैं, अद्वितीय कॉलम पर भ्रम:
यह एक ऐसी आकस्मिक परिस्थिति की बात कर रहा है जिसमें आप जिस पंक्ति को प्रतिस्थापित कर रहे हैं, वह न केवल मौजूदा प्राथमिक कुंजी के साथ, बल्कि अन्य अद्वितीय स्तंभों के साथ भी विरोध करती है। इस बिंदु को स्पष्ट करने के लिए यहां एक और उदाहरण दिया गया है:
CREATE SCHEMA `my_testdb2`;
USE `my_testdb2`;
CREATE TABLE `my_table` (
`key1` VARCHAR(20) NOT NULL,
`key2` INTEGER NOT NULL,
`color` VARCHAR(20) NOT NULL UNIQUE,
`othercolumn1` VARCHAR(50),
CONSTRAINT PRIMARY KEY (`key1`, `key2`) );
REPLACE INTO `my_table` ( `key1`, `key2`, `color`, `othercolumn1` )
VALUES ( 'widgets', 14, 'green', 'Green widget with fuchsia trim' );
REPLACE INTO `my_table` ( `key1`, `key2`, `color`, `othercolumn1` )
VALUES ( 'widgets', 15, 'yellow', 'Yellow widget with orange trim' );
REPLACE INTO `my_table` ( `key1`, `key2`, `color`, `othercolumn1` )
VALUES ( 'thingamabobs', 14, 'red', 'Red widget with brown trim' );
REPLACE INTO `my_table` ( `key1`, `key2`, `color`, `othercolumn1` )
VALUES ( 'widgets', 14, 'yellow', 'Yellow widget with purple trim' );
SELECT * FROM `my_table`;
ध्यान दें कि कैसे अंतिम REPLACE ऑपरेशन न केवल (key1
.) के साथ विरोध करता है , key2
) पहली जगह की प्राथमिक कुंजी, लेकिन दूसरे के अनूठे रंग के साथ भी। इस स्थिति में, अंतिम REPLACE ऑपरेशन करने से पहले दोनों पंक्तियों को हटा दिया जाता है ताकि परिणाम में कोई विरोध न हो। आपके पास केवल दो पंक्तियाँ होंगी:
key1 key2 color othercolumn1
widgets 14 yellow Yellow widget with purple trim
thingamabobs 14 red Red widget with brown trim
दोनों पंक्तियों के साथ (key1
, key2
) बराबर ('विजेट', 14) और 'पीले' रंग वाली पंक्ति नई पंक्ति के कारण टेबल पर कई अद्वितीय बाधाओं के साथ परस्पर विरोधी होने के कारण उड़ गई थी।
आशा है कि यह मदद करता है!