मैं phpmyadmin में मौजूदा तालिका के लिए एक तालिका तालिका स्क्रिप्ट कैसे बना सकता हूं?
मैं phpmyadmin में मौजूदा तालिका के लिए एक तालिका तालिका स्क्रिप्ट कैसे बना सकता हूं?
जवाबों:
Sql टैब में निम्नलिखित क्वेरी का उपयोग करें:
SHOW CREATE TABLE tablename
पूरी क्वेरी देखने के लिए, इस हाइपरलिंक का नाम + विकल्प ऊपर दिया गया है, वहाँ पूर्ण टेक्स्ट चुनें
चरण 1, एक तालिका बनाएँ, कुछ पंक्तियाँ डालें:
create table penguins (id int primary key, myval varchar(50))
insert into penguins values(2, 'werrhhrrhrh')
insert into penguins values(25, 'weeehehehehe')
select * from penguins
चरण 2, mysql डंप कमांड का उपयोग करें:
mysqldump --no-data --skip-comments --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql
चरण 3, पेंगुइन में उत्पादन का निरीक्षण करें। एसक्एल:
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `penguins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `penguins` (
`id` int(11) NOT NULL,
`myval` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
आउटपुट ऊपर और नीचे निष्पादन-स्थिति के टोकन की एक संख्या द्वारा बरबाद किया जाता है। यदि आप उन्हें अगले चरण में नहीं चाहते हैं तो आप उन्हें फ़िल्टर कर सकते हैं।
चरण 4 (वैकल्पिक), इस तरह से उन अतिरिक्त निष्पादन-स्थिति टोकन को फ़िल्टर करें:
mysqldump --no-data --skip-comments --compact --host=your_database_hostname_or_ip.com -u your_username --password=your_password your_database_name penguins > penguins.sql
जो अंतिम उत्पादन का उत्पादन करता है:
eric@dev /home/el $ cat penguins.sql
DROP TABLE IF EXISTS `penguins`;
CREATE TABLE `penguins` (
`id` int(11) NOT NULL,
`myval` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
रन क्वेरी sql टैब है
शो टेबल टेबल बना
पर क्लिक करें
+ विकल्प -> पूर्ण पाठ चुनें -> जाओ पर क्लिक करें
प्रतिलिपि बनाएँ तालिका क्वेरी और पेस्ट करें जहाँ आप नई तालिका बनाना चाहते हैं।
select * from information_schema.columns
where table_name = 'your_table' and table_schema = 'your_database'
यह देर से जवाब हो सकता है। लेकिन यह दूसरों की मदद कर सकता है। यह मेरी एसक्यूएल वर्कबेंच (मैं वर्कबेंच संस्करण 6.3 और मेरा एसक्यूएल संस्करण 5.1 सामुदायिक संस्करण का उपयोग कर रहा हूं) में बहुत सरल है: जिस तालिका पर आप स्क्रिप्ट बनाना चाहते हैं उसके लिए राइट क्लिक करें, 'कॉपी टू क्लिपबोर्ड -> स्टेटमेंट बनाएं' विकल्प चुनें। बस किसी भी टेक्स्ट एडिटर में पेस्ट करें जिसे आप स्क्रिप्ट बनाना चाहते हैं।
PHP फ़ंक्शन का उपयोग करना।
बेशक क्वेरी फ़ंक्शन ($ यह-> मॉडल) आपको अपने स्वयं के लिए बदलना होगा।
/**
* Creating a copy table based on the current one
*
* @param type $table_to_copy
* @param type $new_table_name
* @return type
* @throws Exception
*/
public function create($table_to_copy, $new_table_name)
{
$sql = "SHOW CREATE TABLE ".$table_to_copy;
$res = $this->model->queryRow($sql, PDO::FETCH_ASSOC);
if(!filled($res['Create Table']))
throw new Exception('Could not get the create code for '.$table_to_copy);
$newCreateSql = preg_replace(array(
'@CREATE TABLE `'.$table_to_copy.'`@',
'@KEY `'.$table_to_copy.'(.*?)`@',
'@CONSTRAINT `'.$table_to_copy.'(.*?)`@',
'@AUTO_INCREMENT=(.*?) @',
), array(
'CREATE TABLE `'.$new_table_name.'`',
'KEY `'.$new_table_name.'$1`',
'CONSTRAINT `'.$new_table_name.'$1`',
'AUTO_INCREMENT=1 ',
), $res['Create Table']);
return $this->model->exec($newCreateSql);
}
मुझे sql फ़ाइल में तालिका निर्यात करने का एक और तरीका मिला।
मान लीजिए मेरी टेबल है abs_item_variations
abs_item_variations ->structure -> propose table structure -> export -> Go
SQL के रूप में पूरे डेटाबेस का चयन करें प्रारूप निर्यात करें। अब, उस SQL फ़ाइल को खोलें जिसे आपने नोटपैड, नोटपैड ++ या किसी संपादक का उपयोग करके डाउनलोड किया है। आपको सभी तालिकाएँ दिखाई देंगी और अपने डेटाबेस के प्रश्नों को सम्मिलित करेंगी। सभी स्क्रिप्ट वहां उपलब्ध होंगी।