SQLite错误:表contacts有5列,但提供了10个值

ffvjumwh  于 2022-12-23  发布在  SQLite
关注(0)|答案(1)|浏览(151)

嗨,我正在使用sqlite on programiz做一些课程作业来创建一些表。我试图插入一些值到表中,但我得到了这个错误:
错误:表联系人有5列,但提供了10个值。
我不明白为什么它把输入的代码看作列而不是行。
当我删除其中的5个条目时,我得到了一个不同的错误:
错误:行值误用

-- 5 columns
    -- primary key & correct datatypes
    -- show table structures
    -- enter 10 records and view
    -- update a record
    -- delete a record
    -- create relational database (primary key from first table included)
    
      
        CREATE TABLE contacts (
          personal_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
          first_name TEXT NOT NULL,
          last_name TEXT NOT NULL, 
          email_address TEXT NOT NULL UNIQUE, 
          phone_number TEXT NOT NULL UNIQUE
        );
        INSERT INTO contacts 
        VALUES 
  (
    (
      'James', 'May', 'j.may@gmail.com', 
      '0306 999 0278'
    ), 
    (
      'James', 'Bay', 'j.bay@gmail.com', 
      '0113 496 0664'
    ), 
    (
      'James', 'Cray', 'j.cray@gmail.com', 
      '0116 496 0578'
    ), 
    (
      'James', 'Faye', 'j.faye@gmail.com', 
      '0116 496 0629'
    ), 
    (
      'James', 'Way', 'j.way@gmail.com', 
      '0151 496 0764')
    ), 
    (
      'James', 'Pay', 'j.pay@gmail.com', 
      '0141 496 04678'
    ), 
    (
      'James', 'Lay', 'j.lay@gmail.com', 
      '0116 496 0840'
    ), 
    (
      'James', 'Whey', 'j.whey@gmail.com', 
      '0113 496 0744'
    ), 
    (
      'James', 'Say', 'j.say@gmail.com', 
      '0161 496 08588'
    ), 
    (
      'James', 'Gray', 'j.gray@gmail.com', 
      '0114 496 0401'
    )
  );
7bsow1i6

7bsow1i61#

你的语法错误。
首先,必须在INSERT语句中列出将接收插入值的所有列的名称(这些列是表中除主键之外的所有列,因为主键是自动递增的)。
然后删除括住所有行值的括号:

INSERT INTO contacts (first_name, last_name, email_address, phone_number) VALUES 
    ('James', 'May', 'j.may@gmail.com', '0306 999 0278'), 
    ('James', 'Bay', 'j.bay@gmail.com', '0113 496 0664'), 
    ('James', 'Cray', 'j.cray@gmail.com', '0116 496 0578'), 
    ('James', 'Faye', 'j.faye@gmail.com', '0116 496 0629'), 
    ('James', 'Way', 'j.way@gmail.com', '0151 496 0764'), 
    ('James', 'Pay', 'j.pay@gmail.com', '0141 496 04678'), 
    ('James', 'Lay', 'j.lay@gmail.com', '0116 496 0840'), 
    ('James', 'Whey', 'j.whey@gmail.com', '0113 496 0744'), 
    ('James', 'Say', 'j.say@gmail.com', '0161 496 08588'), 
    ('James', 'Gray', 'j.gray@gmail.com', '0114 496 0401');

请参见demo

相关问题