2011-08-08 14 views
8

क्या यह वाक्यविन्यास विदेशी कुंजी बनाने में सही है?विदेशी कुंजी बनाने में MySQL सिंटेक्स

create table department 
(
    departmentID int not null auto_increment primary key, 
    name varchar(30) 
) type=InnoDB; 

create table employee 
(
    employeeID int not null auto_increment primary key, 
    name varchar(80), 
    job varchar(30), 
    departmentID int not null references department(departmentID) 
) type=InnoDB; 
+0

आप अभी कोशिश क्यों नहीं करते? mysql – zerkms

+3

@zerkms इम से किसी भी व्यक्ति की तुलना में सिंटैक्स की जांच में बेहतर है क्योंकि यह पूछ रहा है क्योंकि मेरे पास एक ईबुक है जो दिखाता है कि यह विदेशी कुंजी बनाने का सही तरीका है - इसके विपरीत ** डौग ** ने कहा _ यह MySQL जैसा दिखता है इसे स्वीकार करता है (वाक्यविन्यास के बारे में शिकायत नहीं करता है) लेकिन विदेशी कुंजी वास्तव में बनाई गई नहीं है ._ यह मेरे प्रशिक्षक ने मुझे सिखाया नहीं है। यही कारण है कि मैंने यह सत्यापित करने की कोशिश की है कि यह तरीका स्वीकार्य है या नहीं। – aer

उत्तर

15

ऐसा लगता है कि MySQL यह स्वीकार करता है (वाक्य रचना के बारे में शिकायत नहीं कर रहा है), लेकिन विदेशी कुंजी वास्तव में नहीं बनाया गया है।

इस विदेशी कुंजी बनाने के लिए, यह कमांड चलाएँ:

ALTER TABLE employee ADD CONSTRAINT fk_department FOREIGN KEY (departmentID) REFERENCES department (departmentID); 
+0

विदेशी कुंजी बनाने की मेरी ईबुक की व्याख्या के बारे में कैसे। _ "इस कथन में सिंटैक्स का केवल एक नया टुकड़ा है। कर्मचारी तालिका में अंतिम कॉलम विभाग की आईडी है जिसके लिए कर्मचारी काम करते हैं। यह एक विदेशी कुंजी है। हम इसे तालिका परिभाषा में जोड़कर घोषित करते हैं संदर्भ खंड इस प्रकार है: departmentID नहीं अशक्त संदर्भ विभाग (departmentID) यह हमें बताता है कि कर्मचारी तालिका में departmentID विभाग तालिका में departmentID स्तंभ को वापस संदर्भित किया जाना चाहिए int "_ आपके बारे में क्या कह सकते हैं। यह? – aer

+0

यह मेरे द्वारा प्रदान किए गए कोड के लिए स्पष्टीकरण है। – aer

+2

मैंने कोड को स्वयं करने की कोशिश की और तालिका आपके कोड के साथ बनाई गई थी, लेकिन जब तक मैंने जवाब में प्रदान किए गए कोड के साथ अलग-अलग विदेशी कुंजी नहीं बनाई, तब तक संदर्भित अखंडता लागू नहीं की गई थी। – Doug

2
create table employee 
(
    employeeID int not null auto_increment primary key, 
    name varchar(80), 
    job varchar(30), 
    departmentID int not null ADD CONSTRAINT fk_department FOREIGN KEY (departmentID) references department(departmentID) 
) 
+4

आपका स्वागत है! 2 साल बाद स्वीकार्य व्यक्ति से यह उत्तर बेहतर क्यों है? –

1
FOREIGN KEY (departmentID) REFERENCES department(departmentID) 

धन्यवाद।!

संबंधित मुद्दे