我想向現有舊數據庫添加一列,然後編寫一個過程,通過該過程可以爲每條記錄分配一個不同的值。就像添加一列併爲其自動生成數據一樣。如果我添加一個名爲「ID」(數字)的新列,我想爲每個記錄初始化一個唯一值。所以,我的ID列將有從1到1000的記錄。我該怎麼做?向現有表添加一列,併爲其添加唯一編號
回答
這將取決於數據庫上,但爲SQL Server,這可以實現如下:
alter table Example
add NewColumn int identity(1,1)
這工作很好,並添加了我需要的所有數字自動。謝謝! – djangofan 2011-10-24 20:42:32
如果您在管理工作室gui中進行更改時遇到問題,您可以更改/ Tools/Options/Designer/Table和Database Desiger下的設置,您將發現一個複選框`Prevent'保存需要重新創建表的更改`取消選中該框和您即使使用gui也能夠添加標識列。 – surfmuggle 2012-11-05 19:28:12
只需使用ALTER TABLE應該工作。用適當的類型和身份標識添加列,它應該做的伎倆
看看這個MSDN文章http://msdn.microsoft.com/en-us/library/aa275462(SQL.80).aspx在ALTER TABLE語法
取決於數據庫的每個數據庫都有一個不同的方式來增加序列數字。我會改變表格來添加列,然後在groovy/python/etc中編寫一個數據庫腳本來讀取數據並使用序列更新id。一旦數據被設置,我會添加一個序列到頂部數字之後開始的表格。一旦數據已經設置好,請正確設置主鍵。
甲骨文你可以做類似下面
alter table mytable add (myfield integer);
update mytable set myfield = rownum;
,如果你發佈你所使用的SQL數據庫,這將有助於。對於MySQL你可能想要auto_increment:
ALTER TABLE tableName ADD id MEDIUMINT NOT NULL AUTO_INCREMENT KEY
不知道這是否適用於追溯值雖然。如果不是,你應該只能用存儲過程或簡單的程序迭代你的值(只要沒有其他人正在寫入數據庫)並設置使用LAST_INSERT_ID()
函數來生成id值。
而且Postgres的當量(第二行是強制的前提是你想要的「ID」是一個關鍵):
ALTER TABLE tableName ADD id SERIAL;
ALTER TABLE tableName ADD PRIMARY KEY (id);
如果你不想讓你的新列是IDENTITY
類型(自動增量),或者您想要詳細說明行的編號順序,您可以添加一個類型爲INT NULL
的列,然後像這樣填充它。在我的示例中,新列名爲MyNewColumn,表的現有主鍵列名爲MyPrimaryKey。
UPDATE MyTable
SET MyTable.MyNewColumn = AutoTable.AutoNum
FROM
(
SELECT MyPrimaryKey,
ROW_NUMBER() OVER (ORDER BY SomeColumn, SomeOtherColumn) AS AutoNum
FROM MyTable
) AutoTable
WHERE MyTable.MyPrimaryKey = AutoTable.MyPrimaryKey
這個作品在SQL Sever的2005及更高版本,即版本支持ROW_NUMBER()
在SQL Server UNIQUEIDENTIFIER數據類型如果你想創建出的該主鍵試試這個
Alter table table_name
add ID UNIQUEIDENTIFIER not null unique default(newid())
列使用此
ALTER TABLE table_name
ADD CONSTRAINT PK_name PRIMARY KEY (ID);
- 1. 向另一個列表中的列表添加唯一元素
- 2. 向現有表添加額外的唯一行ID
- 3. 向mySql中的現有表添加唯一值
- 4. 向唯一表添加新行
- 5. 添加唯一約束列
- 6. 更改表添加唯一列sql ce
- 7. 添加沒有唯一列的小計
- 8. 向Spark DataFrame添加一列併爲其計算值
- 9. 向表差異添加唯一的ID號
- 10. 如何使用ALTER TABLE添加新列並使其唯一?
- 11. 一批到現有的號碼添加在現有列
- 12. 在Wordpress帖子中添加一個唯一的帖子編號
- 13. 在現有表中添加一個新列,其值等於ID
- 14. 向數字列表添加唯一標識 - VBA
- 15. 向數組添加唯一對象
- 16. 僅向容器添加唯一文件?
- 17. 唯一對象鍵,但添加其他
- 18. 散列數組並向其添加值
- 19. 添加%符號併爲其着色
- 20. 向列表框添加一個矩形
- 21. 向Integer列表中添加一個int
- 22. 列添加到現有的表我想一列添加到現有表,其價值依賴於其他的列存儲其值取決於其他列
- 23. 唯一編號列表
- 24. 添加ID列並將其填充到Rails中的現有表?
- 25. 搜索並添加一個python列表
- 26. 加載XML並向其添加節點
- 27. 如何在sybase中添加唯一列?
- 28. 編寫一個添加方法,實現一個雙向鏈表,當我向它添加對象時排序
- 29. 僅添加唯一值
- 30. JSON添加唯一鍵值
這將是數據庫特定的。你應該指定你正在使用的數據庫。 – dvorak 2008-09-20 13:59:25
我正在SQL Server中工作。 – 2008-09-20 14:04:10
你應該編輯你的問題來提一提。 – dvorak 2008-09-20 14:07:54