जोड़ने के लिए मैं SQL के लिए बेहद नया हूं और मैं एक नया कॉलम बनाने के लिए एक सरल वैकल्पिक तालिका निष्पादित करने की कोशिश कर रहा हूं और इसे अपने डेटाबेस में एक और सरल तालिका का संदर्भ देने के लिए एक विदेशी कुंजी के रूप में उपयोग कर रहा हूं। मैं दोनों तालिकाओं बदल दिया है InnoDB होने कीविदेशी कुंजी (MySQL)
हालांकि, जब ALTER तालिका कोड को क्रियान्वित करने, मैं निम्नलिखित त्रुटि मिलती है:
तालिका 1:
Error 1452 Cannot add or update a child row:
a foreign key constraint fails (`toys`.<result 2 when
explaining filename '#sql-6d4_6'>, CONSTRAINT
`#sql-6d4_6_ibfk_1` FOREIGN KEY (`toy_id`) REFERENCES `toys` (`toy_id`))
नीचे दोनों तालिकाओं की DESC हैं:
FIELD TYPE NULL KEY EXTRA
toy_id int(11) NO PRI auto_increment
toy varchar(50) YES
तालिका 2:
FIELD TYPE NULL KEY EXTRA
boy_id int(11) NO PRI auto_increment
boy varchar(50) YES
और यह ALTER क्वेरी मैं प्रदर्शन करने के लिए कोशिश कर रहा था है:
ALTER TABLE boys
ADD COLUMN toy_id INT NOT NULL,
ADD CONSTRAINT toys_toy_id_fk
FOREIGN KEY(toy_id)
REFERENCES toys(toy_id);
मैं इसे पता लगाने की कोशिश भर में देखा है, लेकिन कोई भाग्य के साथ। अग्रिम धन्यवाद, और कृपया इस नौसिखिया :) करने के लिए तरह हो
संपादित करें:
यहाँ शो दोनों तालिकाओं के लिए टेबल बनाएं हैं:
तालिका 1:
CREATE TABLE `toys` (
`toy_id` int(11) NOT NULL AUTO_INCREMENT,
`toy` varchar(50) DEFAULT NULL,
PRIMARY KEY (`toy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
तालिका 2:
CREATE TABLE `boys` (
`boy_id` int(11) NOT NULL AUTO_INCREMENT,
`boy` varchar(50) DEFAULT NULL,
PRIMARY KEY (`boy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
पिछले 'ADD' निकालें:' ... विदेशी कुँजी (toy_id) toys_toy_id_fk स्थिर बिंदु जोड़ें ... ' –
मैंने ADD CONSTRAINT को हटाने और विदेशी कुंजी जोड़ने के साथ-साथ ADD CONSTRAINT को छोड़कर और विदेशी कुंजी से पहले "ADD" को हटाने का प्रयास किया है, लेकिन एक ही त्रुटि प्राप्त करें। – Keith
क्या आप 'शो क्रिएट टेबल खिलौने' के आउटपुट पोस्ट कर सकते हैं और 'टेबल लड़कों को दिखा सकते हैं'? –