Операторы SQL, содержащие символ $, успешно передаются через MariaDB

Я выяснял проблему восстановления mysqlbinlog в течение нескольких дней и обнаружил, что это вызвано некоторыми неполными операторами SQL, содержащими символ $.

Следующие операторы SQL регистрируются в общий журнал, а также появляются в двоичных журналах:

delete from build_type$
insert into build_type$ values ('bt3') 
delete from vcs_root_instance$

Почему эти операторы проходят (продолжение символа $). База данных содержит таблицы без символа $ - build_type, vcs_root_instance?

desc build_type;
+-------------------+-------------+------+-----+---------+-------+
| Field             | Type        | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| int_id            | varchar(80) | NO   | PRI | NULL    |       |
| config_id         | varchar(80) | NO   | UNI | NULL    |       |
| origin_project_id | varchar(80) | YES  |     | NULL    |       |
| delete_time       | bigint(20)  | YES  |     | NULL    |       |
+-------------------+-------------+------+-----+---------+-------+

Версия MariaDB: 10.2.23

1
задан 29 February 2020 в 11:27
1 ответ

Используйте обратные образы вокруг имен баз данных, таблиц и столбцов, если они содержат большинство специальных символов, включая $ . (Подчеркивание можно.) Пример:

delete from `build_type$`

Еще лучше не использовать $ .

0
ответ дан 30 March 2020 в 00:20

Теги

Похожие вопросы