簡體   English   中英

如何正確執行此 mysql 查詢?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM