हम निकटतम मिलान . को निकाल सकते हैं परिणामसेट से संरचना करें और एक तालिका का निर्माण करें।
लेकिन यह तालिका के नाम, कुंजियों, इंजन के प्रकार, कोई फ़ील्ड अशक्त है या नहीं, आदि के संदर्भ में सटीक प्रतिकृति नहीं हो सकती है। .
निम्नलिखित कोड स्निपेट आपको उचित परिणाम प्राप्त करने के लिए एक तरह से आगे बढ़ने में मदद करता है।
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 :
संबंधों का उपयोग करके एकाधिक तालिकाओं के संयोजन में एक परिणाम सेट उत्पन्न किया जा सकता है। एक मौका यह भी है कि परिणामसेट फ़ील्ड अभिव्यक्तियों और उनके उपनामों से बना है। इसलिए, परिणामी कॉलम फ़ील्ड या उपनाम के डेटा प्रकार गतिशील रूप से तय किए जाते हैं। मेटाडेटा क्वेरी से तालिका के सटीक नामों, स्तंभ नामों और उनके मूल/पैरेंट डेटा प्रकारों से अवगत नहीं है।
तो, प्राप्त करना संभव नहीं है
- तालिका का एकल नाम और उसका उपयोग करें।
- पैरेंट कॉलम का डेटा प्रकार और उसका उपयोग करें।
नोट :यह अन्य सभी क्रॉस डेटाबेस विशिष्ट डेटा प्रकारों पर भी लागू होता है, जैसे NVARCHAR , आदि..लेकिन, कृपया MySQL में NVARCHAR उपयोग के विकल्प के लिए यह पोस्टिंग देखें ।
इस तरह के डायनेमिक डेटा माइग्रेशन को आज़माने से पहले, क्लाइंट एप्लिकेशन की ज़िम्मेदारी होनी चाहिए कि वे समान डेटा प्रकारों को जानें और उसी के अनुसार उनका उपयोग करें।
साथ ही, माइक्रोसॉफ्ट एक्सेस के लिए डेटा प्रकार और श्रेणियां देखें , MySQL और SQL सर्वर अधिक जानकारी के लिए।