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

Grails:kesalahan dalam sintaks SQL saat mengubah dialek hibernasi

Mengapa Anda ingin menggunakan MyISAM??? Itu tidak mendukung kunci atau transaksi asing. Dan ini jarang lebih cepat daripada InnoDB karena InnoDB menggunakan kunci baris dan MVCC, berbeda dengan kunci tabel penuh MyISAM.

Karena itu, Anda bisa membuat ini berfungsi. Anda harus menggunakan versi MySQL yang lebih baru karena type atribut sudah usang untuk sementara waktu dan sekarang tidak didukung - Anda harus menggunakan ENGINE sebagai gantinya. Tidak ada dialek yang mendukung ini (perhatikan bahwa org.hibernate.dialect.MySQL5InnoDBDialect melakukan hal yang benar untuk InnoDB) sehingga Anda perlu membuatnya sendiri.

Buat kelas ini di src/groovy atau src/java (ubah paket dan/atau nama kelas):

package com.mycompany.myapp

import org.hibernate.dialect.MySQLMyISAMDialect

class MySQL5MyISAMDialect extends MySQLMyISAMDialect {
   String getTableTypeString() {
      " ENGINE=MyISAM"
   }
}

dan referensikan di DataSource.groovy seperti yang Anda tunjukkan dalam pertanyaan Anda:

dialect = com.mycompany.myapp.MySQL5MyISAMDialect



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. tidak dapat menampilkan simbol merek dagang di mysql ke html

  2. Format tanggal penyisipan mysql PHP

  3. Bagaimana saya bisa mengatasi ketidakcocokan dengan sql_mode=only_full_group_by di laravel fasih?

  4. MySQL:Pilih eksekusi kueri dan waktu pengambilan hasil meningkat dengan jumlah koneksi

  5. Haruskah koneksi database tetap terbuka sepanjang waktu atau hanya dibuka saat dibutuhkan?