2013-07-23 89 views
0

我想添加一個唯一的ID到已插入數據的現有表。我不需要每行都有一個新值,而是每個插入實例。時間標記表示一個新的插入。任何人都可以提供足夠的指導,讓我朝正確的方向發展我目前的表基本上是列a和時間戳。將唯一ID添加到表

ID  COLUMN A TIME STAMP 
1  abc  05-09-2013 11:00:23 
1  bcd  05-09-2013 11:00:23 
1  ab3  05-09-2013 11:00:23 
2  abc  05-09-2013 11:15:00 
2  123  05-09-2013 11:15:00 
3  abc  05-09-2013 11:18:07 
4  abc  05-09-2013 11:19:55 
4  123  05-09-2013 11:19:55 
4  165  05-09-2013 11:19:55 
4  def  05-09-2013 11:19:55 
+0

你們的榜樣ID不是唯一的。您可以按照原樣使用表格,並在時間戳記列上粘貼一個索引,因爲這是您感興趣的值。幾乎沒有合適的解決方案,但是...它也有助於告訴我們爲什麼要添加此項新的ID和它的用例是什麼。 –

+0

這些值將被插入到表格中,但表格中的另一列將用註釋更新。唯一的ID將用作更新的引用(更新表SET註釋='此ID的註釋',其中ID = 1)。不鼓勵使用GUID,因爲要記住/引用的字符太多。 –

回答

0

想不到任何簡單的方法來根據每個插入實例放置唯一的ID。一個想法可以是在表上使用觸發器,您可以在數據插入表之前檢查數據如何插入並添加ID值。

0

首先創建一個允許爲null的ID列。 然後編寫一個程序,該程序在查詢上有一個光標,該查詢按時間戳列進行排序並按組排序。 對於每一行使用id =計數器增加計數由一個 更新表whwre倍夯實=查詢

時間戳在對id列本加約束的結束,使之不爲空

0

你要可能需要一個自動增量字段。在SQL Server中爲此使用IDENTITY。這將使您能夠在不提供此p_id值的情況下插入,並且該值將自動遞增。

您不希望使用時間戳進行唯一性檢索,因爲索引編制困難且代價高昂。確保時間價值的獨特性也很困難。

CREATE TABLE Persons 
(
P_Id int PRIMARY KEY IDENTITY, 
LastName varchar(255) NOT NULL, 
FirstName varchar(255), 
Address varchar(255), 
City varchar(255) 
) 
0

如果您的插入不是很頻繁。您可以使用時間戳獲取唯一的ID。 例如130509110023

你可以做一些數學來獲得適當的功能所需的數據長度,它會給你唯一的ID