如何使用auto_increment主键列将多个数据插入表中?

时间:2015-05-26 03:16:22

标签: sql sqlite sql-insert

所以我正在使用SQLite 3.6并尝试使用

将多个数据插入到具有3列(1个AI PK)的表中
INSERT INTO 'tablename'
      SELECT 'data1' AS 'column1', 'data2' AS 'column2'
UNION SELECT 'data3', 'data4'
UNION SELECT 'data5', 'data6'
UNION SELECT 'data7', 'data8'

不知怎的,它没有用,我收到了这个错误

  

table transport_type有3列,但提供了2个值

还有其他方法输入多个数据吗?

1 个答案:

答案 0 :(得分:4)

如果您没有为表中的所有列提供数据,或者您提供的数据与表中的列的顺序不同,则必须提供列名列表:

INSERT INTO tablename(column1, column2)
SELECT ...

相关示例:

  1. 省略一些列以使用其默认值。

    从技术上讲,这与上面相同,但这表明非自动增量列的用法。

    INSERT INTO myTable(column1, column7, column21)
    SELECT 'one', 'seven', 'twenty-one';
    
  2. 以不同于已定义的顺序插入列。

    给定一个具有以下定义的表:

    CREATE TABLE myTable (
        column1 VARCHAR(255),
        column2 VARCHAR(255),
        column3 VARCHAR(255),
        column4 VARCHAR(255)
    );
    

    我们可以指定列列表来插入无序数据的行。请注意,列的顺序与定义的顺序不同。

    INSERT INTO myTable(column3, column4, column2, column1)
    SELECT 'three', 'four', 'two', 'one';