簡體   English   中英

將值添加到新列到已存在的行 - 大表

[英]Adding values to a new column to rows that already exist - Large table

我在 VB 上有一個 sql 數據庫,在添加所有數據之前忘記添加一個新列,超過 25k 行。 不是我將被遺忘的數據逐行添加到新列中,而是有人可以通過添加這個新列並將新數據添加到預先存在的行中來考慮嗎?

例如

ID    NAME      DATA   
1     Alpha     Cheese  
2     Bravo     Steak
3     Charlie   Wine
So on......

ID    NAME      DATA    NEW COLUMN
1     Alpha     Cheese  £1.50
2     Bravo     Steak   £5.00
3     Charlie   Wine    £8.00
So on......

顯然數據必須匹配到正確的行

提前致謝!

我又讀了一遍; 我認為是 SQL Server。

在這種情況下:

-- create and populate your updating table ...
CREATE TABLE newdata (
  id  INTEGER NOT NULL PRIMARY KEY
, pounds DECIMAL(18,2)
);
-- populate it.
INSERT INTO newdata
          SELECT 1,1.50
UNION ALL SELECT 2,5.00
UNION ALL SELECT 3,8.00
;

-- with your own table ...
-- a) modify your original table. add a currency column
ALTER TABLE thetable ADD pounds DECIMAL(18,2);

-- update the new column correctly. Use the MERGE command.
-- only a WHEN MATCHED THEN clause, as you don't add any data
MERGE INTO thetable
USING newdata
   ON thetable.id=newdata.id
WHEN MATCHED THEN UPDATE SET
  pounds = newdata.pounds
;

-- effect:
SELECT * FROM thetable ORDER BY 1;
-- out Time: First fetch (1 row): 11.961 ms. All rows formatted: 11.998 ms
-- out  id |   nme   |  dat   | pounds 
-- out ----+---------+--------+--------
-- out   1 | Alpha   | Cheese |   1.50
-- out   2 | Bravo   | Steak  |   5.00
-- out   3 | Charlie | Wine   |   8.00

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM