#mysql #sql #node.js #insert #amazon-rds
#mysql #sql #node.js #вставить #amazon-rds
Вопрос:
У меня есть таблица MySQL (v 5.7), синтаксически оформленная как:
CREATE TABLE risk_summary (
u_id BINARY(16) PRIMARY KEY NOT NULL,
calculation_time DATETIME NOT NULL,
calculation_parameters NVARCHAR(4000) NOT NULL,
comprehensive NVARCHAR(4000) NOT NULL
);
Мне нужно вставить данные в один столбец ( comprehensive
) в форме JSON. JSON, который мне нужно вставить в **comprehensive**
столбец, это (пример):
[
{
"label": "5/27/20",
"date": "05-27-2020 19:07 UTC",
"cat4_cnt": {
"stratus": "critical",
"count": 2
},
"cat3_cnt": {
"stratus": "high",
"count": 8
},
"cat2_cnt": {
"stratus": "moderate",
"count": 11
},
"cat1_cnt": {
"stratus": "low",
"count": 16
},
"cat0_cnt": {
"stratus": "unknown",
"count": 3
},
"median": 1.05
},
{
"label": "Apr. 2019",
"date": "04-27-2019 15:22 UTC",
"cat4_cnt": {
"stratus": "critical",
"count": 4
},
"cat3_cnt": {
"stratus": "high",
"count": 3
},
"cat2_cnt": {
"stratus": "moderate",
"count": 15
},
"cat1_cnt": {
"stratus": "low",
"count": 12
},
"cat0_cnt": {
"stratus": "unknown",
"count": 0
},
"median": 1.25
}
]
insert
Для следующей операции SQL, которую я написал (используя AWS RDS query editor
):
INSERT INTO Risk_Summary VALUES (UNHEX(REPLACE("6p9dbhica-56tg-471a-af27-31beb4b34bb2", "-","")),
NOW(),
"{a:1, b:2} ",
"[{ "label": "5/27/20", "date": "05-27-2020 19:07 UTC", "cat4_cnt": "{ stratus: "critical", count: 2 }", "cat3_cnt": "{ stratus: "high", count: 8 }", "cat2_cnt": "{ stratus: "moderate", count: 11 }", "cat1_cnt": "{ stratus: "low", count: 16 }", "cat0_cnt": "{ stratus: "unknown", count: 3 }", "median": 1.05 }, { "label": "Apr. 2019", "date": "04-27-2019 15:22 UTC", "cat4_cnt": "{ stratus: "critical", count: 4 }", "cat3_cnt": "{ stratus: "high", count: 3 }", "cat2_cnt": "{ stratus: "moderate", count: 15 }", "cat1_cnt": "{ stratus: "low", count: 12 }", "cat0_cnt": "{ stratus: "unknown", count: 0 }", "median": 1.25 }]",
);
Но редактор запросов выдает ошибку: Cannot find parameter: 07
.
Я попробовал JSON
тип данных в соответствии с документами MYSQL 5.7, но это также не работает для меня.
Если кто-нибудь может помочь через то же самое, высоко ценится 🙂
Комментарии:
1. Пока не знаю, что может вызвать это, но мы можем попытаться исправить проблемы, которые мы видим. У вас есть проблема. Вы не можете использовать двойные qoutes для qoute строки как внутренней, так и внешней. измените «[{ «метка»:….» на «[{ «метка»:…».
2. Я обновил всю строку, например:
"[{ label: '5/27/20', date: '05-27-2020 19:07 UTC', cat4_cnt: "{ stratus: 'critical', count: 2 }", cat3_cnt: "{ stratus: 'high', count: 8 }", cat2_cnt: "{ stratus: 'moderate', count: 11 }", cat1_cnt: "{ stratus: 'low', count: 16 }", cat0_cnt: "{ stratus: 'unknown', count: 3 }', median: 1.05 }, { label: 'Apr. 2019', date: '04-27-2019 15:22 UTC', cat4_cnt: '{ stratus: 'critical', count: 4 }', .....]"
, на которую он выдал новую ошибкуCannot find parameter: 22
, не уверен, связано ли это сdate: '04-27-2019 15:22 UTC
параметром в строке?3. Отредактируйте вопрос с правильным форматированием, не публикуйте код в качестве комментария.
4. что подразумевается под «во ВСЕХ значениях»? В аргументах REPLACE(). В значение для
calculation_parameters
столбца.5. dbfiddle.uk /… PS. JSON неверен — например, в этом фрагменте:
"cat4_cnt": "{ stratus: "critical", count: 2 }",
кавычки неправильно помещены за скобки объекта.