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

エラーは、同じテーブル名の別のテーブルが既に存在していたためです。

于 2013-03-12T02:11:39.977 に答える
1

もう 1 つ注目すべき点は、トリガーです。同じエラーが発生し、最終的にエラーが挿入ステートメントではなくトリガー ステートメントの結果であると判断しました。「不明な列」は、トリガーが挿入しようとしていたテーブルにありました。

于 2014-01-09T21:05:38.083 に答える
0

insert ステートメントを使用していて、列の値が見つからないか空である場合。このエラーが発生する可能性があります。私は準備されたステートメントを使用していました。数値データ型の列でこのエラーが発生しました。この根本的な原因は、空の文字列が列の値として渡されたことです。奇妙なことに、「不明な列」がスローされます e

于 2014-10-06T10:42:38.050 に答える