我尝试使用Node.JS将null
发送到我的MySQL数据库:
con.query("INSERT INTO Routes (routeTrigger) VALUES ( " + null + " )", {title: 'test'}, function(err, result) {
if (err) throw err;
});
但在查看数据库时,更新后的值为'null'
。数据库的NULL
应该是 NULL
。如果我发送资金NULL
,那甚至不起作用(在Node.JS中)。如果我发送'NULL'
,它会发送字符串" NULL",而不是数据库的NULL
。
答案 0 :(得分:4)
JavaScript null
与SQL Null
不同。您希望(在您的情况下,使用原始SQL字符串)一个字符串:
con.query("INSERT INTO Routes (routeTrigger) VALUES ( null )", {title: 'test'}, function(err, result) {
if (err) throw err;
});
但请注意,这会创建一个完全null
的行。这是可能的,但它不太可能你想要的。
你究竟想做什么?
答案 1 :(得分:1)
如果要分配 NULL 值在 SQL 表中,您可以采用不同的方式。
您可以调整字段(列),而不是分配 NULL ,以便默认值(当没有赋值时)为: NULL 强>
现在,当您插入新行时,只需不为该字段分配任何值。
示例:
让我们说这个表的结构如下:
<强> MyTable的强>
id :自动增量; ...
名称:文字
网址:文字; default = NULL
然后你可以这样做:
INSERT INTO Mytable ( name ) VALUES ( "Joe" );
当您忽略网址信息时,它会设置为 NULL 。
答案 2 :(得分:0)
这用于使用Node.js从JSON进行PostgresQL表迁移;可能会有所帮助。检查来自您的源的值,如果该列不存在该值,请在双引号中使用“ NULL”。 EG,如果是JSON:
const makeVal = (val)=>{
if(val === undefined) {
return "NULL"
} else {
return "'" + JSON.stringify(val).replace(/'/g, "''") + "'"
}
}
有关完整实现,请参见此要旨https://gist.github.com/foureyedraven/ca90a7dcbfd0918c153b0c91ec9317c5。
答案 3 :(得分:0)
答案 4 :(得分:0)
有效
if(my_var != null){ my_var = '"'+my_var+'"';}`
else{ my_var = "NULL";}
connection.query('insert into my_table(my_var) values('+my_var+')',(error,
results)=>{
if (error) { throw error}
connection.end();})`
答案 5 :(得分:0)
要使用nodejs在mysql中传递空值,我们需要一种不同的查询实现。
conn.query({
sql: `INSERT INTO project values(?, ?, ?, ?);`,
values: [projectId, name, startDate, endDate]}, (error, results) => {
if (error) {
console.log("Error executing sql: ", error.message);
return res.send(error);
}
});
});
官方网站说:“未定义/ null转换为NULL” 而且有效。
使用上述语法来触发查询。