将值添加到 SQL 中现有表中新添加的列

时间:2021-06-20 06:43:51

标签: mysql sql

bids: [
    {
      amount: 36,
      date: 2021-06-23T21:00:00.000+00:00,
      placedBy: [
        ObjectId('1111111'),
        ObjectId('22223332')
      ]
    },
    {
      amount: 16,
      date: 2021-06-23T21:00:00.000+00:00,
      placedBy: [
        ObjectId('1111111'),
        ObjectId('22223332')
      ]
    }
  ]
<块引用>

现在我在现有表格中又添加了一列。

 INSERT INTO Employees (empId,name,salary,Email_id,DOB)

VALUES
('1','stephen','30000','stephen@gmail.com','1999-02-16'),
('2','andew','40000','andew@gmail.com','1995-12-09'),
('3','dev','16000','dev@gmail.com','1992-08-16'),
('4','jackson','25000','jack@gmail.com','1992-08-16'),
('5','shayam','33000','shaym@gmail.com','1992-08-16'),
('6','abc','31000','abc@gmail.com','1992-08-16'),
('7','xyz','32500','xyz@gmail.com','1992-08-16'),
('8','San','22000','san123@gmail.com','1992-08-16'),
('9','Sonu','29000','hkyadav@gmail.com','1992-08-16');

我收到错误代码:1136。列数与第 1 行的值数不匹配

2 个答案:

答案 0 :(得分:1)

当插入语句中的列数小于查询中的值数时,会抛出上述异常。请检查列并尝试第一次手动插入值,然后运行插入脚本。

答案 1 :(得分:1)

正确的语法是

INSERT INTO EMPLOYEES (age)
VALUES
(21),
(22),
(32),
(35),
(45),
(39),
(28),
(26),
(36)
;

这将添加新行,但年龄列为 NULL,或者如果某些列被声明为 NOT NULL 并且没有 DEFAULT 值,则会失败。 如果目标不是添加新行而是更新现有行,则您需要 UPDATE 语句,有点

update EMPLOYEES e,
   (values   
    row (1, 21),
    row (2, 22),
    row (3, 32),
    row (4, 35),
    row (5, 45),
    row (6, 39),
    row (7, 28),
    row (8, 26),
    row (9, 36) 
   ) t(empId, age)
set e.age = t.are
where e.empId = t.empId;
相关问题