有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MySQL简单查询错误

我是MySQL新手,我写了一个简单的查询:

CREATE Table tblFeedBack
(
    `FeedBackID` INT AUTO_IncremeNT,
    `UserID` INT,
    `Inserted_TS` TIMESTAMP ,
    `FeedBackValue` VARCHAR(100),
     PRIMARY KEY (FeedBackID)
);

CREATE PROCEDURE tblFeedBack_InsertUpdate
(
    IN U_ID INT,
    IN FB_Value VARCHAR(50)
)
BEGIN    
    IF ((Select COUNT(*) From 'tblFeedback') < 3)
        BEGIN
            INSERT INTO 'tblFeedBack' (`UserID`,`FeedBackValue`) 
            VALUES (U_ID,FB_Value);
        END
    ELSE
        BEGIN
            DECLARE @MostRecentFID INT;

            SELECT TOP 1 `FeedBackID` FROM tblFeedback 
            WHERE UID = U_ID
            ORDER BY `Inserted_TS` DESC
            INTO @MostRecentFID;

            UPDATE tblfeedback
            SET `FeedBackValue` = @FeedBackValue
            WHERE `FeedBackID` = @MostRecentFID 
        END
END

我得到这个错误:

 Schema Creation Failed: 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 ''tblFeedBack' (`UserID`,`FeedBackValue`) VALUES (1,'12')' at line 9

谁能帮我解决这个问题? 提前谢谢


共 (2) 个答案

  1. # 1 楼答案

    插入查询中的表名不同。一个包含“tblFeedback”,另一个包含“tblFeedback”

    此外,请尝试删除查询中表名附近的单引号

  2. # 2 楼答案

    MySQL不支持TOP如果您想使用LIMIT 1,因为它们是按顺序排列的

    Select `FeedBackID` FROM tblFeedback 
    WHERE UID = U_ID
    ORDER BY `Inserted_TS` DESC
    LIMIT 1
    INTO @MostRecentFID;
    

    此外,当您使用引号查询表时,它会区分大小写

    IF ((Select COUNT(*) From 'tblFeedback') < 3)
    

    应该是

    IF ((Select COUNT(*) From 'tblFeedBack') < 3)
    

    修复这两个错误,它应该可以工作