簡體   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