[英]How to perform this mysql query correctly?
我正在使用 npm 模塊 'mysqljs' 並嘗試通過它執行查詢。
它的目的是檢查某個約束或外鍵是否存在,如果存在則將其刪除。
不幸的是,我收到以下錯誤,無法弄清楚出了什么問題:
錯誤:您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,了解在第 1 行的“IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS”附近使用的正確語法)
代碼如下(當然是縮短版):
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;
}
});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.