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

स्प्रिंग बूट schema.sql फ़ाइल में निष्पादन प्रक्रिया के साथ समस्या

यहाँ वह समाधान है जो मैंने पाया है जो काफी अच्छा काम करता है, हालाँकि यह आदर्श नहीं है क्योंकि आपको अपनी SQL स्क्रिप्ट को बदलना होगा।

आपके application.properties . में फ़ाइल डेटा स्रोत विभाजक गुण बदलें:

spring.datasource.separator=^;

फिर अपने schema.sql को अपडेट करें इस प्रकार देखने के लिए फ़ाइल:

CREATE PROCEDURE Alter_Table()
BEGIN
 IF NOT EXISTS( SELECT NULL
            FROM INFORMATION_SCHEMA.COLUMNS
           WHERE table_name = 'test_table'
             AND table_schema = 'test'
             AND column_name = 'cc_test_id')  THEN

  alter table test_table add cc_test_id VARCHAR(128) NOT NULL;

END IF;
END ^;

call Alter_Table ^;

DELIMITER कमांड केवल MySQL CLI क्लाइंट और वर्कबेंच के साथ काम करता है और स्प्रिंग बूट डेटाबेस इनिशियलाइज़ेशन के लिए काम नहीं करेगा। एक बार जब आप DELIMITER कमांड को हटा देते हैं, तब भी स्प्रिंग बूट एक अपवाद को फेंक देगा क्योंकि यह ; को नहीं समझेगा। संग्रहीत कार्यविधियों में वर्ण अलग-अलग कथन नहीं हैं, इसलिए आपको डेटा स्रोत विभाजक गुण को वैकल्पिक हल के रूप में बदलना होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BIGINT अहस्ताक्षरित को INT . में बदलें

  2. MySQL में आवृत्ति से दशमलव की गणना करें

  3. एक मान घटाकर एक कॉलम अपडेट करें

  4. कंस्ट्रक्टर इन द सेलेक्ट क्लॉज का उपयोग करके एकाधिक तालिका के चयनित कॉलम के लिए एचक्यूएल जॉइन क्वेरी कैसे लिखें

  5. MySQL टेबल स्टेटमेंट