MySQL स्टोर्ड प्रोसीजर के अंदर ALTER TABLE ... RENAME का उपयोग करके टेबल का नाम बदल सकते हैं।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1859 (Id INT);
डेटा डालें
mysql> INSERT INTO DemoTable1859 VALUES(101), (102);
प्रोसीजर बनाकर नाम बदलें
mysql> DELIMITER //
mysql> CREATE PROCEDURE alter_table_name_sp()
BEGIN
ALTER TABLE DemoTable1859 RENAME exampleTable;
END //
mysql> DELIMITER ;
प्रोसीजर कॉल करें
mysql> CALL alter_table_name_sp(); Query OK, 0 rows affected (0.00 sec)
नाम बदला गया जांचें
mysql> SELECT * FROM exampleTable;
+------+ | Id | +------+ | 101 | | 102 | +------+
महत्वपूर्ण नोट्स
RENAME TABLE old_name TO new_nameभी उपयोग कर सकते हैं (बहु-टेबल परमाणु रीनेम के लिए)।- रीनेम मेटाडेटा ऑपरेशन है; डेटा कॉपी नहीं होता, बहुत तेज़।
- प्रोसीजर के अंदर DDL (
ALTER,CREATE,DROP) अंतर्निहित कमिट करता है (ट्रांजैक्शन तोड़ता है)। - विदेशी कुंजी, व्यू, ट्रिगर नए नाम पर स्वचालित अपडेट नहीं होते; उन्हें मैन्युअली ठीक करना पड़ता है।
RENAME TABLE बनाम ALTER TABLE RENAME
| कमांड | विशेषता |
|---|---|
RENAME TABLE a TO b | एकाधिक टेबल एक साथ: RENAME TABLE a TO b, c TO d (परमाणु) |
ALTER TABLE a RENAME b | एक टेबल, ALTER सिंटैक्स के अनुरूप |