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

MySQL वर्कबेंच में टेबल निर्माण स्क्रिप्ट कैसे प्राप्त करें?

कम से कम सामुदायिक संस्करण में मुझे ऐसा कोई विकल्प नहीं मिल रहा है।

मुझे लगता है कि यह Reverse Engineering सुविधा, जो दुर्भाग्य से, केवल व्यावसायिक संस्करण में उपलब्ध है (उद्धरण) :


फिर भी, आप create table प्राप्त करने के लिए प्लेन-एसक्यूएल का उपयोग कर सकते हैं निर्देश जो आपको एक टेबल बनाने की अनुमति देगा।

उदाहरण के लिए, निम्न क्वेरी:

show create table url_alias;

जब एक ड्रूपल डेटाबेस पर निष्पादित किया जाता है, तो सही click > copy field content . का उपयोग करते समय देगा परिणाम पर :

'CREATE TABLE `url_alias` (
  `pid` int(10) unsigned NOT NULL auto_increment,
  `src` varchar(128) NOT NULL default '''',
  `dst` varchar(128) NOT NULL default '''',
  `language` varchar(12) NOT NULL default '''',
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `dst_language` (`dst`,`language`),
  KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8'

दुर्भाग्य से (फिर से) , MySQL वर्कबेंच इस तरह से कॉपी करते समय हर जगह कुछ उद्धरण जोड़ता है :-(

संपादित करें:MySQL 8.0 का उपयोग करते हुए, राइट click > copy field (unquoted) का विकल्प है। बिना उद्धरण के वांछित परिणाम प्राप्त करने के लिए परिणाम पर।


अंत में, सरल समाधान, MySQL क्वेरी ब्राउज़र के साथ रहने के अलावा, कमांड-लाइन क्लाइंट का उपयोग करके डेटाबेस से कनेक्ट होने की सबसे अधिक संभावना होगी, और show create table निष्पादित करें। वहां से पूछताछ करें:

mysql> show create table url_alias\G
*************************** 1. row ***************************
       Table: url_alias
Create Table: CREATE TABLE `url_alias` (
  `pid` int(10) unsigned NOT NULL auto_increment,
  `src` varchar(128) NOT NULL default '',
  `dst` varchar(128) NOT NULL default '',
  `language` varchar(12) NOT NULL default '',
  PRIMARY KEY  (`pid`),
  UNIQUE KEY `dst_language` (`dst`,`language`),
  KEY `src_language` (`src`,`language`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

"सही भाग प्राप्त करना "आउटपुट आसान है, वहां :हटाने के लिए कोई उद्धरण नहीं है।


और, केवल पूर्णता के लिए, आप mysqldump . का भी उपयोग कर सकते हैं अपनी तालिका की संरचना प्राप्त करने के लिए:

mysqldump --no-data --user=USERNAME --password=PASSWORD --host=HOST DATABASE_NAME TABLE_NAME

--no-data का उपयोग करना स्विच करें, आपको केवल संरचना मिलेगी -- कुछ मोड सेटिंग्स के बीच में और वह सब



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आप खंड से अद्यतन के लिए लक्ष्य तालिका 'NAME' निर्दिष्ट नहीं कर सकते हैं

  2. Laravel में इसे कैसे करें, सबक्वेरी जहां in

  3. मौजूदा उपयोगकर्ता को निर्यात और आयात कैसे करें (इसके विशेषाधिकारों के साथ!)

  4. MySQL DATETIME को सम्मिलित करें:क्या ISO::8601 प्रारूप का उपयोग करना सुरक्षित है?

  5. MySQL में किसी डेटाबेस के कैरेक्टर सेट और कॉलेशन को कैसे सेट करें