मेरे पास postgresql डेटाबेस के लिए स्प्रिंग r2dbc कनेक्शन है और मैं एक टेबल बनाना चाहता हूं,

प्रभावी रूप से SQL . के बराबर

CREATE TABLE IF NOT EXISTS name (id, bigint);

मैं इसे कैसे कर सकता हूं क्योंकि डेटाबेस क्लाइंट केवल चयन/सम्मिलित करने का समर्थन करता है?

1
mangusbrother 24 जून 2019, 23:45

2 जवाब

सबसे बढ़िया उत्तर

जैसा कि थॉमस एंडोल्फ ने टिप्पणी में कहा था

.execute().sql() वास्तव में सही तरीका है

मेरे मामले में मुझे जारी रखने से पहले परिणाम के लिए अनिश्चित काल तक अवरुद्ध करने की आवश्यकता थी इसलिए मुझे .fetch().all().collectList().block(); संलग्न करने की आवश्यकता थी

0
mangusbrother 25 जून 2019, 21:22

आपको अपनी टेबल बनाने के लिए डेटाबेस क्लाइंट का उपयोग करने की आवश्यकता नहीं है। तो जब मुझे आपके जैसी ही समस्या का सामना करना पड़ा तो मैंने निम्न कोड की तरह कुछ किया:

 fun postgresProcess(config: PostgresConfig): PostgresProcess {
        val runtime = PostgresStarter.getDefaultInstance()
        val exec = runtime.prepare(config)
        val postgres = exec.start()
        // connecting to a running Postgres and feeding up the database
        val conn = DriverManager.getConnection("jdbc:postgresql://$host:$port/$database", username, password)
        conn.createStatement().execute("CREATE TABLE customer ( id SERIAL PRIMARY KEY, firstname VARCHAR(100) NOT NULL, lastname VARCHAR(100) NOT NULL);")
        return postgres
    }

शुरुआत में, आप ऐसा कुछ कर सकते थे और डेटाबेस क्लाइंट का उपयोग करने के बाद।

मुझे सफलता के बिना फ्लाईवे की कोशिश करना याद है। मैं डेटाबेस क्लाइंट का उपयोग करना पसंद करता। मेरे रेपो पर अधिक कोड github

0
Xavier Bouclet 24 जून 2019, 23:54