sql >> データベース >  >> RDS >> Mysql

Grails:休止状態の方言を変更するときのSQL構文のエラー

    なぜMyISAMを使いたいのですか?外部キーまたはトランザクションをサポートしていません。また、MyISAMのフルテーブルロックとは対照的に、InnoDBは行ロックとMVCCを使用するため、InnoDBよりも高速になることはめったにありません。

    そうは言っても、これを機能させることができます。 type以降、新しいバージョンのMySQLを使用している必要があります 属性はしばらくの間非推奨になり、現在はサポートされていません。ENGINEを使用する必要があります。 代わりは。これをサポートする方言はありません(org.hibernate.dialect.MySQL5InnoDBDialectに注意してください) InnoDBに対して正しいことを行うので、独自に作成する必要があります。

    このクラスをsrc/groovyまたはsrc/javaに作成します(パッケージやクラス名を変更します):

    package com.mycompany.myapp
    
    import org.hibernate.dialect.MySQLMyISAMDialect
    
    class MySQL5MyISAMDialect extends MySQLMyISAMDialect {
       String getTableTypeString() {
          " ENGINE=MyISAM"
       }
    }
    

    質問で示したように、DataSource.groovyで参照してください:

    dialect = com.mycompany.myapp.MySQL5MyISAMDialect
    



    1. MySQLでストアドプロシージャをどのように編集しますか?

    2. Mysql名前に特殊文字を含むデータベースを作成する

    3. ETLプロセスでのPythonとMySQLの使用

    4. MySQL 5.7.12インポートでは、CHARACTERSET'binary'の文字列からJSON値を作成できません