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

标签 sql sqlite sql-insert

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

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 has 3 columns but 2 values were supplied



有没有其他方法可以输入多个数据?

最佳答案

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

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

相关例子:
  • 省略一些列以使用它们的默认值。

    从技术上讲,这与上面的相同,但这演示了非自动增量列的用法。
    INSERT INTO myTable(column1, column7, column21)
    SELECT 'one', 'seven', 'twenty-one';
    
  • 以不同于定义的顺序插入列。

    给定一个具有以下定义的表:
    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';
    
  • 关于sql - 如何使用auto_increment主键列向表中插入多个数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30448876/

    相关文章:

    SQL查询选择每个员工的每种类型的表单

    ios - 在钥匙串(keychain)中存储多个用户名和密码凭证

    mysql - 如果mysql中不存在则插入记录

    php - 为下面的查询创建索引的最佳方法是什么

    mysql - 计算已知深度的层次结构中的值

    sql - 有没有办法从 SQL 中的 map(varchar, varchar) 列中提取数据?

    mysql - 插入带有来自 Select 的值的查询

    android.database.sqlite.SQLITeException : no such table: admin while compiling: INSERT INTO . ..等

    python-3.x - sqlalchemy.exc.OperationalError : (sqlite3. OperationalError) 没有这样的表

    php - INSERT INTO 语法问题