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

JDBC रिजल्ट सेट के आधार पर टेबल कैसे बनाएं

हम निकटतम मिलान . को निकाल सकते हैं परिणामसेट से संरचना करें और एक तालिका का निर्माण करें।
लेकिन यह तालिका के नाम, कुंजियों, इंजन के प्रकार, कोई फ़ील्ड अशक्त है या नहीं, आदि के संदर्भ में सटीक प्रतिकृति नहीं हो सकती है। .

निम्नलिखित कोड स्निपेट आपको उचित परिणाम प्राप्त करने के लिए एक तरह से आगे बढ़ने में मदद करता है।

String sql = "select * from visitors";
ResultSet rs = stmt.executeQuery( sql );
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
String tableName = null;
StringBuilder sb = new StringBuilder( 1024 );
if ( columnCount > 0 ) { 
    sb.append( "Create table " ).append( rsmd.getTableName( 1 ) ).append( " ( " );
}
for ( int i = 1; i <= columnCount; i ++ ) {
    if ( i > 1 ) sb.append( ", " );
    String columnName = rsmd.getColumnLabel( i );
    String columnType = rsmd.getColumnTypeName( i );

    sb.append( columnName ).append( " " ).append( columnType );

    int precision = rsmd.getPrecision( i );
    if ( precision != 0 ) {
        sb.append( "( " ).append( precision ).append( " )" );
    }
} // for columns
sb.append( " ) " );

System.out.println( sb.toString() );

कोड के उपरोक्त भाग के साथ निष्पादन, निम्नलिखित स्ट्रिंग मुद्रित:

Create table visitors ( ip VARCHAR( 6 ), bro VARCHAR( 6 ) )

मुझे आशा है कि इससे आपको आगे बढ़ने में मदद मिलेगी।

इसी तरह का उदाहरण यहां पाया जा सकता है: ResultSet का उपयोग करके एक टेबल बनाएं ???

अपडेट 1 :

क्लाइंट साइड एप्लिकेशन पर केवल परिणामसेट पर निर्भर होने पर आप कुछ नहीं कर सकते।
यह हमेशा मुख्य चयन क्वेरी होना चाहिए जो geometry . जैसे समग्र डेटा प्रकार से उचित डेटा का चयन करता है , address , आदि.
उदाहरण :select addess.city, address.zipcode, x( geometry_column ), y( geometry_column ) चुनें

geometry का उदाहरण देने के लिए डेटा प्रकार :
MySQL के पास इसकी की परिभाषाएं हैं। स्थानिक सहायता . लेकिन मुझे यकीन नहीं है कि वे SQL की तुलना में कितने अच्छे हैं सर्वर का स्थानिक डेटा का कार्यान्वयन

geometry एक समग्र डेटा प्रकार है और इसलिए इसे सीधे क्वेरी द्वारा पुनर्प्राप्त नहीं किया जा सकता है।
आपको आश्रित फ़ंक्शन की आवश्यकता होती है जो ऐसे डेटा कॉलम से डेटा को पार्स करता है और पठनीय में वापस आता है। , पहचान योग्य डेटा प्रारूप।
उदाहरण :create table geom ( g geometry );
परिणाम परिवर्तित करना select g from geom . से सेट करें तालिका बनाने के लिए जावा का उपयोग करने के परिणामस्वरूप unknwon . होगा कॉलम g . के लिए डेटा प्रकार .

Create table geom ( g UNKNOWN )

x(g) . का उपयोग करना , y(g) कॉलम g . पर कार्यों को समन्वयित करें उचित और स्वीकार्य डेटा प्रकार लौटाएगा।
क्वेरी select x(g), y(g) from geom

. में बदल दिया जाएगा
Create table  ( x(g) DOUBLE( 23, 31 ), y(g) DOUBLE( 23, 31 ) ) 

अपडेट 2 :
संबंधों का उपयोग करके एकाधिक तालिकाओं के संयोजन में एक परिणाम सेट उत्पन्न किया जा सकता है। एक मौका यह भी है कि परिणामसेट फ़ील्ड अभिव्यक्तियों और उनके उपनामों से बना है। इसलिए, परिणामी कॉलम फ़ील्ड या उपनाम के डेटा प्रकार गतिशील रूप से तय किए जाते हैं। मेटाडेटा क्वेरी से तालिका के सटीक नामों, स्तंभ नामों और उनके मूल/पैरेंट डेटा प्रकारों से अवगत नहीं है।

तो, प्राप्त करना संभव नहीं है

  1. तालिका का एकल नाम और उसका उपयोग करें।
  2. पैरेंट कॉलम का डेटा प्रकार और उसका उपयोग करें।

नोट :यह अन्य सभी क्रॉस डेटाबेस विशिष्ट डेटा प्रकारों पर भी लागू होता है, जैसे NVARCHAR , आदि..लेकिन, कृपया MySQL में NVARCHAR उपयोग के विकल्प के लिए यह पोस्टिंग देखें

इस तरह के डायनेमिक डेटा माइग्रेशन को आज़माने से पहले, क्लाइंट एप्लिकेशन की ज़िम्मेदारी होनी चाहिए कि वे समान डेटा प्रकारों को जानें और उसी के अनुसार उनका उपयोग करें।

साथ ही, माइक्रोसॉफ्ट एक्सेस के लिए डेटा प्रकार और श्रेणियां देखें , MySQL और SQL सर्वर अधिक जानकारी के लिए।



  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. केकेपीएचपी 3 - एसक्यूएल प्रारूप को सही करने और सत्यापन को सही करने के लिए स्थानीयस्ट्रिंगफॉर्मैट के साथ पार्स तिथि

  3. क्या MySQL नेस्टेड परिणामों की वापसी सूची का चयन कर सकता है

  4. सॉकेट होमब्रे के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता

  5. osx पर jdbc का उपयोग करके जावा को mysql से कनेक्ट करें