Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मौजूदा MYSQL डेटाबेस के साथ Alter Table का उपयोग करके विदेशी कुंजी जोड़ने में समस्या - इसे जोड़ नहीं सकते! मदद!

क्या दोनों टेबल InnoDB टाइप हैं?

क्या कंपनी तालिका में company_id पर एक अनुक्रमणिका है?

मुझे लगता है कि आपकी तालिका MyISAM है (यदि आपने कॉन्फ़िगरेशन नहीं बदला है तो डिफ़ॉल्ट) और आप MyISAM में विदेशी कुंजी बाधाएँ नहीं बना सकते। दो टेबल के लिए CREATE TABLE का विवरण देखें।

यदि दोनों टेबल खाली हैं, तो उन्हें छोड़ दें और उन्हें फिर से बनाएं, InnoDB को इंजन के रूप में चुनें। आप टेबल निर्माण स्क्रिप्ट में विदेशी कुंजी बाधाओं को भी जोड़ सकते हैं।

MySQL से संदर्भ मैनुअल :

@egervari:यदि आप इसे चलाते हैं तो क्या होता है:

CREATE TABLE `test` (
  `company_id` bigint(20) NOT NULL,
  `module_id` bigint(20) NOT NULL,

  KEY  (`module_id`),
  KEY  (`company_id`),

  CONSTRAINT `test_fk_module`
    FOREIGN KEY (`module_id`)
    REFERENCES `module` (`module_id`),

  CONSTRAINT `test_fk_company`
    FOREIGN KEY (`company_id`)
    REFERENCES `company` (`company_id`)
    ON DELETE RESTRICT
    ON UPDATE RESTRICT

) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

और अगर आप दौड़ते हैं:

ALTER TABLE `company_to_module`
  ADD CONSTRAINT `company_to_module_fk_company` 
    FOREIGN KEY (`company_id`)
    REFERENCES `company` (`company_id`)
    ON DELETE RESTRICT
    ON UPDATE RESTRICT;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Amazon EC2, mysql निरस्त करना प्रारंभ क्योंकि InnoDB:mmap (x बाइट्स) विफल रहा; त्रुटि 12

  2. MySql दिनों में दो टाइमस्टैम्प के बीच अंतर?

  3. विंडोज़ के तहत MySQL में स्वत:पूर्ण

  4. ImportError:MySQLdb नाम का कोई मॉड्यूल नहीं

  5. डुप्लिकेट पंक्तियों को कैसे हटाएं और तालिका को कैसे अपडेट करें