Javascript 如何正确执行此mysql查询?
我正在使用npm模块“mysqljs”,并试图通过它执行查询 它的目的是检查某个约束或外键是否存在,如果存在则删除它 不幸的是,我出现了以下错误,无法找出问题所在: 错误:您的SQL语法有错误;查看与MySQL服务器对应的手册 使用“如果存在”的正确语法的版本 选择* 来自第1行的信息\u SCHEMA.REFERENTIAL\u约束 代码如下所示,当然是简化版:Javascript 如何正确执行此mysql查询?,javascript,mysql,sql,Javascript,Mysql,Sql,我正在使用npm模块“mysqljs”,并试图通过它执行查询 它的目的是检查某个约束或外键是否存在,如果存在则删除它 不幸的是,我出现了以下错误,无法找出问题所在: 错误:您的SQL语法有错误;查看与MySQL服务器对应的手册 使用“如果存在”的正确语法的版本 选择* 来自第1行的信息\u SCHEMA.REFERENTIAL\u约束 代码如下所示,当然是简化版: const query = ` IF EXISTS ( SELECT * FROM INFORMATION_S
const query = `
IF EXISTS (
SELECT *
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME LIKE "Location_User";
) THEN
ALTER TABLE Location DROP CONSTRAINT Location_User;
END IF
`
connection.query(query, (error, results) {
if (error) throw error;
return results
});
不能在存储过程之外使用IF语句
改为使用JavaScript执行逻辑
connection.query(`SELECT COUNT(*) AS count
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
WHERE CONSTRAINT_NAME LIKE "Location_User";`, (error, results) => {
if (error) {
throw error;
}
if (results[0].count > 0) {
connection.query('ALTER TABLE Location DROP CONSTRAINT Location_User;', (error) => {
if (error) {
throw error;
}
});
}
});
也许会有帮助这能回答你的问题吗@爆米花对DDL语句不起作用。您需要将此代码放入存储过程中,在普通查询中不能使用IF语句。另一种方法是使用JavaScript中的if逻辑分别执行这两个查询。