java - 插入mysql表时出现异常

标签 java mysql sql insert

<分区>

我已经从下面的脚本生成了一个 mysql 表

CREATE TABLE IF NOT EXISTS `Record` (
  `RecordID` INT(11) NOT NULL AUTO_INCREMENT,
  `URL` text NOT NULL,
  PRIMARY KEY (`RecordID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

问题是我不能像这样向表中插入任何值

sql = "INSERT INTO  test.'Record' " + "('URL') VALUES " + "(?);";

要么这样

    sql = "INSERT INTO  'test'.'Record' values(?)";
PreparedStatement stmt = db.conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            stmt.setString(1, URL);
            stmt.execute();

这是异常信息

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 ''test'.'Record' values

这样做的正确方法是什么。

最佳答案

从数据库名称和表名称中删除单引号。

sql = "INSERT INTO test.Record values(?)";
PreparedStatement stmt = db.conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            stmt.setString(1, URL);
            stmt.execute();

您可以使用反引号 (`) 代替单引号。它会起作用。

关于java - 插入mysql表时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27985445/

相关文章:

java - 如何确定原生Android组件中React-Native中的DevMode?

java - Android 谷歌地图 API 无法正常工作

mysql - JOIN 操作应该被多表 SELECT 取代吗?

mysql - 无法对 MySQL 用户设置权限

mysql - 如何在MySql树结构数据中找到到根的距离?

sql - 连接 RAISERROR 中的消息

c# - 下拉列表没有选择正确的索引

java - 使用 TestNG 在不同浏览器上进行 Selenium 测试

java - 收到致命警报:SSLHandshakeException中的handshake_failure

php - 在 php mysql 中不显示任何结果之间