javascript - 如何正确执行这个mysql查询?

标签 javascript mysql sql

我正在使用 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/

相关文章:

javascript - 暂停 youtube 视频,youtube api

php - MySQL 多重连接并使用结果连接另一个表

android - 游标计数(*) getCount 工作不良

php - 在 MySQL PDO 中使用 PHP 函数

mysql - 获取MySQL中每行之间的负差之和

javascript - 在 ASP.Net Release模式下提供内容时,Chrome 呈现不同?

javascript - 基于选项卡的 Web 浏览的最佳方法

mysql - 在同一查询中更新列两次

javascript - 为什么 .nextElementSibling 不返回 null?

javascript - 如何在javascript中从mysql检索用户列表