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 などの別の名前に変更してください。