代码之家  ›  专栏  ›  技术社区  ›  bensiu CandorZ

PostgreSQL插入多行-失败

  •  5
  • bensiu CandorZ  · 技术社区  · 16 年前

    我使用的是PostgreSQL 8.1.11。

    我失去理智了。为什么不能使用基本的SQL语句作为插入语句?

    我提供:

    INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) VALUES
    ( 1, 1, 1, NULL, '4500' ), ( 2, 1, 2,    1, NULL );
    
                             ^ this comma is a problem
    

    我缺少什么?这看起来像是插入多行的基本SQL插入语句。我的问题与我的PostgreSQL版本有关吗?

    我插入了很多行,我希望优化插入多行,而不是放置多个插入。

    4 回复  |  直到 16 年前
        1
  •  14
  •   Magnus Hagander    16 年前

    PostgreSQL 8.1不支持多行插入语法,需要升级到8.2或更高版本(如果现在升级,则应该升级到8.4,而不是8.2!)

    另一个原因是,正如弗兰克在评论中提到的,版本8.1将在11月结束生命,所以 真正地 是时候开始调查升级了。

        2
  •  4
  •   Edmund    16 年前

    我不确定Postgres8.1是否支持多行值。语法是:

    INSERT INTO table [ ( column [, ...] ) ]
        { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }
    

    http://www.postgresql.org/docs/8.1/static/sql-insert.html

        3
  •  2
  •   frogstarr78    14 年前

    我知道这是一条古老的线,但这会起作用:

    INSERT INTO the_leads_details ( id, lead_id, question_id, i_value, c_value ) (
    SELECT 1, 1, 1, NULL, '4500' 
    UNION SELECT 2, 1, 2,    1, NULL 
    );
    
        4
  •  1
  •   vulkanino    16 年前

    语法正确,您确定问题在逗号中吗?