Escape reserved separator identifiers in MySQL SQL

This commit is contained in:
2026-07-20 17:19:09 +08:00 Unverified
parent 1a87e06fc8
commit a30477bb58
4 changed files with 14 additions and 8 deletions
+4 -4
View File
@@ -198,7 +198,7 @@ function buildSeedOperations(state) {
for (const rule of state.admissionNumberRules) {
add(
`INSERT INTO admission_number_rules (
id, code, name, description, separator, segments_json, example, active, created_at
id, code, name, description, \`separator\`, segments_json, example, active, created_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
rule.id, rule.code, rule.name, rule.description, rule.separator || '', JSON.stringify(rule.segments || []),
rule.example || '', rule.active === false ? 0 : 1, rule.createdAt
@@ -267,7 +267,7 @@ function buildSeedOperations(state) {
for (const rule of state.numberRules) {
add(
'INSERT INTO number_rules (id, name, separator, active, created_by, updated_at) VALUES (?, ?, ?, ?, ?, ?)',
'INSERT INTO number_rules (id, name, `separator`, active, created_by, updated_at) VALUES (?, ?, ?, ?, ?, ?)',
rule.id, rule.name, rule.separator || '', rule.active ? 1 : 0, nullable(rule.createdBy), rule.updatedAt
);
rule.segments.forEach((segment, index) => add(
@@ -1123,13 +1123,13 @@ function createRepository({ client, location, read, transaction, close }) {
const operations = [operation('UPDATE number_rules SET active = 0 WHERE active = 1')];
if (isNew) {
operations.push(operation(
'INSERT INTO number_rules (id, name, separator, active, created_by, updated_at) VALUES (?, ?, ?, ?, ?, ?)',
'INSERT INTO number_rules (id, name, `separator`, active, created_by, updated_at) VALUES (?, ?, ?, ?, ?, ?)',
rule.id, rule.name, rule.separator, rule.active ? 1 : 0, optional(rule.createdBy), rule.updatedAt
));
} else {
operations.push(
operation(
'UPDATE number_rules SET name = ?, separator = ?, active = ?, created_by = ?, updated_at = ? WHERE id = ?',
'UPDATE number_rules SET name = ?, `separator` = ?, active = ?, created_by = ?, updated_at = ? WHERE id = ?',
rule.name, rule.separator, rule.active ? 1 : 0, optional(rule.createdBy), rule.updatedAt, rule.id
),
operation('DELETE FROM number_rule_segments WHERE rule_id = ?', rule.id)