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

विदेशी कुंजी संदर्भों को अद्यतन किए बिना एक InnoDB तालिका का नाम बदलना?

पुराने प्रश्न, लेकिन निम्नलिखित एक संभावित तरीका है। मूल रूप से तालिकाओं का नाम बदलने के बजाय डेटा को स्थानांतरित करें। आपको निश्चित रूप से यह सुनिश्चित करना होगा कि नया डेटा विदेशी कुंजी नियमों का पालन करता है।

SET foreign_key_checks = 0;
CREATE TABLE IF NOT EXISTS foo_old LIKE foo;
INSERT INTO foo_old SELECT * FROM foo;
TRUNCATE foo;
INSERT INTO foo SELECT * FROM foo_new;

सुनिश्चित करें कि आप इसे एक क्वेरी के रूप में चलाते हैं ताकि विदेशी_की_चेक पूरी चीज़ पर लागू हो। आशा है कि यह मदद करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएचपी पीडीओ फ़ेच अशक्त

  2. MySQL (MyISAM टेबल) में TABLES को कब लॉक करें?

  3. फ़ोरैच लूप में SQL परिणाम का उपयोग करना

  4. क्या MySQL में केवल एक फ़ील्ड के लिए WHERE क्लॉज दिखाने का कोई तरीका है?

  5. MySQL:तालिका '/tmp/#sql_185e_0.MYI' के लिए गलत कुंजी फ़ाइल इसे सुधारने का प्रयास करें