sql >> Databáze >  >> RDS >> Mysql

Problém s prováděním procedury v souboru spring boot schema.sql

Zde je řešení, které jsem zjistil, že funguje dostatečně dobře, i když není ideální, protože musíte změnit svůj SQL skript.

Ve vašem application.properties soubor změnit vlastnost oddělovače DataSource:

spring.datasource.separator=^;

Poté aktualizujte schema.sql soubor vypadat následovně:

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 ^;

Příkaz DELIMITER funguje pouze s klientem MySQL CLI a Workbench a nebude fungovat pro inicializaci databáze Spring Boot. Jakmile odstraníte příkazy DELIMITER, Spring Boot stále vyvolá výjimku, protože nerozumí ; znaky v uložených procedurách nejsou samostatné příkazy, takže musíte změnit vlastnost oddělovače datového zdroje.



  1. Pořadí tisku ze součtu v PHP a MySQL v pořadí 1,1,3,4 atd

  2. Potřebujete dotaz na odlišnou kombinaci dvou polí spolu s počtem, že se vyskytuje odlišná kombinace

  3. Jak ladit postgresql uložené procedury?

  4. Smazat pomocí levého spojení v Oracle 10g