问题描述
所以,我的数据库中有“N”个表,每个表都有不同的列,包含不同类型的数据。
我可以根据“table_name”从每个表中提取所有数据,但是现在单击行时我想删除它。
假设我可以像这样提取数据并将其发送到服务器。
{["colA":"a1","colB":"a2","colC":"a3",...]}
在table.jsx我有
const deleteData = async (event,parameters) => {
event.preventDefault();
// parameters = {["colA":"a1",...]}
let params = JSON.stringify(parameters);
var config = {
headers: { "Content-Type": "application/json",Accept: "/" },};
const res = await axios
.post(
`http://localhost:3080/delete/${table_name}/${params}`,config
)
.then((response) => {
console.log(response);
})
.catch((error) => {
let errorObject = JSON.parse(JSON.stringify(error));
console.log(errorObject.message);
});
};
但是在 server.js 中,我无法弄清楚如何实现它以适用于每个表中的任何行,而不是列的类型。
router.post("/delete/:table/:columns",function (req,res) {
let tableName = req.params.table;
let table = JSON.parse(req.params.columns);
let querysql = `DELETE FROM ${tableName} WHERE ${Object.entries(table).map(
([key,value]) => {
return `${key} = '${value}'`;
}
)};`;
mssql.connect(dbConfig,function (err) {
var request = new mssql.Request();
request.query(querysql,function (err,results) {
if (err) {
return res.status(500).json({ type: "error",message: "error" });
return res.send(err);
} else {
res.send({ message: "SUCCESS" });
}
mssql.close();
});
});
});
我想执行它:DELETE FROM TABLE1 WHERE colA = "a1" AND colB = "a2" AND colC = "a3" 等等..但应该可用于任何表。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)