Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Masalah dengan menjalankan prosedur dalam file skema boot spring.sql

Inilah solusi yang saya temukan yang bekerja cukup baik, meskipun tidak ideal karena Anda harus mengubah skrip SQL Anda.

Di application.properties . Anda file ubah properti pemisah DataSource:

spring.datasource.separator=^;

Kemudian perbarui schema.sql Anda file menjadi seperti berikut:

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

Perintah DELIMITER hanya berfungsi dengan klien MySQL CLI dan Workbench dan tidak akan berfungsi untuk inisialisasi database Spring Boot. Setelah Anda menghapus perintah DELIMITER, Spring Boot masih akan mengeluarkan pengecualian karena tidak akan memahami ; karakter dalam prosedur tersimpan bukanlah pernyataan terpisah, jadi Anda harus mengubah properti pemisah sumber data sebagai solusinya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akhir prematur dari kesalahan data dengan PHP

  2. Cari tahu di mana kode PHP Anda melambat (Masalah Kinerja)

  3. Sailsjs Mysql ORM beberapa kueri pada bidang tabel yang sama

  4. php/mysql. Apakah ada fungsi mysql untuk mendeteksi jika setidaknya ada 2 kata tertentu di setidaknya satu bidang baris mysql?

  5. permintaan mysqli hanya mengembalikan baris pertama