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

एक बंद टेबल का नाम बदलना

जबकि सामान्य तौर पर रिक पेरकोना टूल्स का उपयोग करने के लिए सही है (देखें 1 और 2 ), प्रश्न का उत्तर वास्तव में ALTER TABLE . का उपयोग करना है . मैंने सोचा RENAME सिर्फ एक उपनाम था - लेकिन ऐसा लगता है कि ऐसा नहीं है

ऐसा लगता है कि परीक्षण से पता चलता है कि यह ठीक काम करता है:

CREATE TABLE foo_new (...)

-- copy data to new table, might take very long
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id <= 3;

LOCK TABLES foo WRITE, foo_new WRITE;

-- quickly copy the tiny rest over
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id > 3;

-- now switch to the new table
ALTER TABLE foo RENAME TO foo_old;
ALTER TABLE foo_new RENAME TO foo;

UNLOCK TABLES;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ट्रिगर प्रश्न:कॉलम बदलने पर ही ट्रिगर होता है?

  2. डेटाबेस व्यवस्थापन के लिए MySQL बैकअप और पुनर्स्थापना आदेश

  3. बी-ट्री बनाम हैश टेबल

  4. पीडीओ मूल्य वृद्धि पीएचपी, मैसकल

  5. SQL में कार्डिनैलिटी की परिभाषा क्या है