繁体   English   中英

SQL 从表的开头向新列插入新值

[英]SQL insert new values into new column from the beginning of table

我在hotel表中添加了一个名为roomNumber的新列,该表已经有一些值。 但是当我尝试将新值插入hotel时,这些值将从当前数据完成的位置而不是开始处插入。

我的查询

INSERT INTO hotel
(roomNumber) 
VALUES
    (20),
    (60),
    (100),
    (20),
    (20),
    (150),
    (50),
    (50),
    (30),
    (50);

值从 id = 10 开始插入,而我希望它插入 id = 1(开始) 在此处输入图像描述

使用 SQL insert时,您正在向表中插入新行。 您想要更新现有行,然后为新数据的 rest 运行插入。

具有多个 WHERE 条件的 UPDATE 语句

所以你想插入 ID 1 的数据?

您需要使用UPDATE ,而不是INSERT 由于行已经存在。

如果您INSERT数据,您将为新数据创建新行。 如果要更改现有行,则需要UPDATE这些行。

因此,要更新现有的三个行,您需要三个UPDATE查询*

UPDATE hotel set roomNumber = 20 where id=8
UPDATE hotel set roomNumber = 60 where id=9
UPDATE hotel set roomNumber = 100 where id=10

我假设您的主键列称为id - 您可能有不同的名称。

然后插入您剩余的数据,您可以运行INSERT查询:

INSERT hotel (name, roomNumber) 
  values 
    ('Excelsior',20),
    ('Manor Park Hotel', 20) 
    etc.

我在这里发明了一些酒店名称,因为插入没有酒店名称的房间数似乎没有什么意义。

请注意,“表的开头”在 SQL 中没有实际意义。除非您指定ORDER BY子句,否则不能保证行的顺序,但这与此处无关。 要更新特定行,您需要指定标识该行的WHERE子句。 主键是一种常用的方法。

*如果您使用合适的WHERE子句,您可以使用单个UPDATE查询执行三个更新,但这对于三行来说似乎不必要地复杂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM