1

我收到以下错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:“字段列表”中的未知列“userId”

导致此错误的代码是这样的:

PreparedStatement pstmt = 
    con.prepareStatement(
        "INSERT INTO " + 
        tableName + 
        " (userId,username,email,password) VALUES (?,?,?,?)");

我的表是由以下命令创建的

stmt.executeUpdate(
    "CREATE TABLE " + 
    tableName + 
    " (" + 
    " userId INT, " + 
    " userName VARCHAR(255) NOT NULL, " + 
    " email VARCHAR(255) NOT NULL, " + 
    " password VARCHAR(255), " + 
    " PRIMARY KEY(userId)" + 
    " )");
stmt.close();

有人可以帮我找出我的错误(如果有的话)。我是这方面的新手,所以我很难找到错误的确切位置。

4

3 回答 3

1

要查看的另一件事是触发器。我遇到了同样的错误,最终确定该错误是触发器语句而不是插入语句的结果。“未知列”位于触发器试图插入的表中。

于 2014-01-09T21:05:38.083 回答
1

错误是因为已经存在另一个具有相同表名的表。

于 2013-03-12T02:11:39.977 回答
0

如果您使用的是插入语句并且列值缺失或为空。它可以给出这个错误。我正在使用准备好的语句。对于具有数字数据类型的列,我收到此错误。其根本原因是空字符串作为列值传递。奇怪的是它抛出“未知列”e

于 2014-10-06T10:42:38.050 回答