繁体   English   中英

错误:ER_TABLE_EXISTS_ERROR:使用 node.js 与 mysql 连接时

[英]Error: ER_TABLE_EXISTS_ERROR: when connecting with mysql using node.js

我收到错误:ER_TABLE_EXISTS_ERROR:尝试使用 node.js 连接 mysql 时出现错误。 我完全是使用带有节点的 sql 数据库的初学者。 已成功创建所有表。 但我仍然收到此错误。 我找不到导致此错误的原因。 我该如何解决这个问题。 谢谢!

 const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "discussions",
});

con.connect((err) => {
  if (err) {
    throw err;
  }

  let usql =
    "CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name TEXT, profile TEXT)";
  con.query(usql, (err, result) => {
    if (err) {
      throw err;
    }
    console.log("User Table created");
  });

  let csql =
    "CREATE TABLE comments (id INT AUTO_INCREMENT PRIMARY KEY, comment TEXT, upvotes INT)";
  con.query(csql, (err, result) => {
    if (err) {
      throw err;
    }
    console.log("Comments Table created");
  });

  let rsql =
    "CREATE TABLE replies (id INT AUTO_INCREMENT PRIMARY KEY, reply TEXT, upvotes INT)";
  con.query(rsql, (err, result) => {
    if (err) {
      throw err;
    }

    console.log("Replies Table created");
  });

  let sql =
    "SELECT users.name AS user, comments.id AS comments FROM users JOIN comments ON users.comment_id = comments.id";
  con.query(sql, (err, result) => {
    if (err) {
      throw err;
    }

    console.log(result);
  });

  let msql =
    "SELECT comments.id AS comment, replies.id AS replyies FROM comments JOIN replies ON comment_id.reply_id = replies.id";
  con.query(msql, (err, result) => {
    if (err) {
      throw er;
    }
    console.log(result);
  });
});

正如@Heiko 在评论部分并根据您的代码所说。 每次连接到数据库时,您的代码都会创建一个表。 第一次它会很好,它会为你创建表格。 但是在那之后,当您运行代码时,它会再次尝试创建这些表,但是这些表已经按照错误所说的那样创建。

所以请尝试使用以下语句

如果不存在则创建表

因此您的代码应如下所示

 const con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "discussions",
});

con.connect((err) => {
  if (err) {
    throw err;
  }

  let usql =
    "CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name TEXT, profile TEXT)";
  con.query(usql, (err, result) => {
    if (err) {
      throw err;
    }
    console.log("User Table created");
  });

  let csql =
    "CREATE TABLE IF NOT EXISTS comments (id INT AUTO_INCREMENT PRIMARY KEY, comment TEXT, upvotes INT)";
  con.query(csql, (err, result) => {
    if (err) {
      throw err;
    }
    console.log("Comments Table created");
  });

  let rsql =
    "CREATE TABLE IF NOT EXISTS replies (id INT AUTO_INCREMENT PRIMARY KEY, reply TEXT, upvotes INT)";
  con.query(rsql, (err, result) => {
    if (err) {
      throw err;
    }

    console.log("Replies Table created");
  });

  let sql =
    "SELECT users.name AS user, comments.id AS comments FROM users JOIN comments ON users.comment_id = comments.id";
  con.query(sql, (err, result) => {
    if (err) {
      throw err;
    }

    console.log(result);
  });

  let msql =
    "SELECT comments.id AS comment, replies.id AS replyies FROM comments JOIN replies ON comment_id.reply_id = replies.id";
  con.query(msql, (err, result) => {
    if (err) {
      throw er;
    }
    console.log(result);
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM