代码之家  ›  专栏  ›  技术社区  ›  pkaeding

MySQL错误:简单INSERT语句上的查询为空(1065)

  •  2
  • pkaeding  · 技术社区  · 16 年前

    我试图运行一个创建表的大型脚本,然后向其中插入近15000行。表创建得很好,但在833 INSERT时,我收到了一个错误:

    Error: Query was empty (1065)
    

    以下是我的第833条INSERT语句(失败的语句):

    INSERT INTO CLASSCODE (CLASS_CODE, CLASS_CODE_NAME, RATE_GROUP, PROGRAM_NM, ST_CODE, EFF_DT, EXP_DT) VALUES (10255, "Funeral Directors - incl PL other than Crematory  - 10255", 3, "Service", "AZ", 19980801, NULL);
    

    我看不出这行和一行之间有任何语法错误或差异。对于引用,以下是一个运行良好的INSERT语句示例:

    INSERT INTO CLASSCODE (CLASS_CODE, CLASS_CODE_NAME, RATE_GROUP, PROGRAM_NM, ST_CODE, EFF_DT, EXP_DT) VALUES (10425, "Frame Shop - Picture/Posters                      - 10425", 2, "Retail", "AZ", 19980801, NULL);
    

    让我困惑的是,如果我使用另一个SELECT语句中的数据填充新行(该语句为空),那么错误听起来就像会发生的事情。然而,事实并非如此,因为我的INSERT语句都使用静态数据。

    CREATE TABLE CLASSCODE (
          CLASS_CODE INTEGER NOT NULL, 
          CLASS_CODE_NAME VARCHAR(60) NOT NULL, 
          RATE_GROUP SMALLINT NOT NULL, 
          PROGRAM_NM VARCHAR(20) NOT NULL, 
          ST_CODE CHAR(2), 
          EFF_DT DATE, 
          EXP_DT DATE) 
    

    这可能与我试图插入的行数有关吗?我需要定期提交吗?有什么简单的东西我只是忽略了吗?

    5 回复  |  直到 15 年前
        1
  •  3
  •   Scott    16 年前

    在脚本文件中遇到这些最常见的情况是,您在某处有一个双分号:

    INSERT INTO CLASSCODE 
    (CLASS_CODE, CLASS_CODE_NAME, RATE_GROUP, PROGRAM_NM, ST_CODE, EFF_DT, EXP_DT)
    VALUES
    (10255, "Funeral Directors - incl PL other than Crematory  - 10255", 3, "Service", "AZ", 19980801, NULL)
    ;;
    

    我会快速搜索剧本,看看是否有 ;; 在833线附近。

        2
  •  4
  •   zombat    16 年前

        3
  •  1
  •   paxdiablo    16 年前

    如果每次插入后都进行提交(您的事务缓冲区可能空间不足),会发生什么?那么,它有效吗?实际上,更好的测试是在事务号800处进行一次提交。如果你超过833,那么这就是你的问题。

    如果是这样,只需修改您的脚本(或自动生成的创建脚本id的脚本),以提交每100个左右的插入(在每次插入后提交可能会使其速度慢得令人难以忍受)。

        4
  •  1
  •   Brent Writes Code    16 年前

    如果您担心实际的查询语法,这似乎没问题。我创建了你的表并运行了插入,它奏效了。当你说你正在运行一个脚本时,你是否只有一个充满你正在运行的原始SQL的文件?我以前遇到过“空查询”类型错误的时候,是人们在使用JDBC类型的东西时,循环逻辑搞砸了。

    你试过重新排序文件中的一些插页吗?这至少可以告诉我们,它是否在特定查询或文件中的特定位置失败。尝试重新排序您的插入,看看它是否仍然在833中失败,或者它是否在其他地方失败。如果它落在同一个地方,听起来像是记忆或缓冲区相关的东西。如果你移动它时它改变了位置,我会说你有一个流浪角色(a;或a.maybe)像@zombat说的那样躺在某个地方。

        5
  •  0
  •   acdarekar    11 年前

    我必须修正表格中所有缺失的数据。

    推荐文章