我正在使用 npm 模块“mysqljs”并尝试通过它执行查询。
其目的是检查某个约束或外键是否存在,如果存在则删除它。
不幸的是,我收到以下错误并且无法找出问题所在:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS ' at line 1
代码如下所示(当然是缩短版本):
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;
}
});
}
});
关于javascript - 如何正确执行这个mysql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59533490/