データベースフィールドの名前付けによって発生する SQL エラー

1.テーブルデザイン 

create table variables
(
    id                     bigint       not null comment '主键',
    business_key           varchar(128) null comment '业务key',
    `key`                  varchar(128) null comment 'Map中的key',
    value                  varchar(255) null comment 'Map中的value',
    data_type              varchar(32)  null comment '数据类型',
    created                datetime     null comment '创建时间',
    modified               datetime     null comment '修改时间',
    yn                     int          null comment '数据是否有效,1:有效,0:无效'
)
    comment '自定义变量表';
 

2. エラーを報告する

org.springframework.jdbc.BadSqlGrammarException: 
### データベースの更新中にエラーが発生しました。原因: com.mysql.jdbc.Exceptions.jdbc4.MySQLSyntaxErrorException: vtgate: http://xxxte-xx3b-xrxdxxe-4p2cf:12301/: ターゲット: test_db.0.master、使用したタブレット: xx3b-11225725 (xx.10x. xx.1x): vttablet: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを確認して、'key,value,data_type,created,modified,yn) 値 (100021,null,'xx' 行 1 (errno 1064) (sqlstate 42000) 付近で使用する正しい構文を確認してください) (CallerID: ): Sql: "/* uag::test_db;1x.1x.1xx.1xx:16xx9;1x.2x.3x1.2x4:1xxx24;1x.x5.1xx.60:31x28;enable */ insert into変数 (id,business_key,key,value,data_type,created,modified,yn) 値 ( 100021,null,'orderTime','1691579920000','Long','2023-08-09 19:21:50',

……

……

### エラーは xxx/core/dao/mapper/xxx/VariablesMapper.java に存在する可能性があります (最良の推測)
### エラーには com.xx.xxx.xx..dao.mapper.VariablesMapper.insertBatch-Inline が関係している可能性があります
### パラメーターの設定中にエラーが発生しました
### SQL: 変数 (id,key,value,data_type,created,modified,yn) 値 ( ?,?,?,?,?,?,? ),( ?,?,?,?,?,?,? )
### 原因: com.mysql.jdbc.Exceptions.jdbc4.MySQLSyntaxErrorException: vtgate: http://xxxte-xx3b-xrxdxxe-4p2cf:12301/: ターゲット: test_db.0.master、使用したタブレット: xxx: vttablet: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを確認して、'key,value,data_type,created,modified,yn) 値 (100021,null,'orderTime' 行 1 (errno 1064) (sqlstate 42000) 付近で使用する正しい構文を確認してください) (発信者ID: ): 

3. エラーの理由の分析:

長い間検索した結果、何も問題がないことがわかりました。最終的に、多くのドキュメントを参照した後、ローカルでデバッグして、フィールド名とキーワードの間の競合が原因であるかどうかを確認することにしました。名前、それはすぐに機能しました。

キー フィールドが MySQL のキーワードと競合しています。キーを data_key などの別の名前に変更してください。

рекомендация

отblog.csdn.net/bingxuesiyang/article/details/132204542