2013-01-18 124 views
0

是否可以創建基於特定字段的自動增量?例如,我有UserIdStatus字段,因此對於每個具有相同UserId的行,我需要自動遞增Status,而不是全局。基於字段的MySQL自動增量?

+2

這應該是你在找什麼: http://stackoverflow.com/questions/5416548/mysql-two-column-primary-key-with-auto-increment – dognose

+0

@dognose這取決於發動機,所以不適用於所有情況... – Kin

回答

0

當我讀到你的問題時,有三點讓我想起。一個是自動遞增字段,用作您的身份證號碼。使用沒有唯一ID號碼的數據更新表格。搜索具有相同Userid領域Status 山第一個例子是一個創建表和你AUTO_INCREMENT荷蘭國際集團號ID:

CREATE TABLE tableNameHere 
(
UniqueID int NOT NULL AUTO_INCREMENT, 
FirstName varchar(255) NOT NULL, 
StatusOrYourColumn int(100) NOT NULL, 
PRIMARY KEY (UniqueUD) 
) 

More on auto incrementation.

您可能已經建立你的表,現在要'添加」額外的和或使用ALTER修改字段:

ALTER TABLE tableNameHere StatusOrYourColumn INT AUTO_INCREMENT PRIMARY KEY 

但要小心,你不希望覆蓋您的設置喲你已經設置好了。

另一件事在我看來是在讀書的時候,你說Status和Userid在哪裏相同。您可以使用WHERE子句,像這樣找到這些:

SELECT * FROM tableName WHERE tableName.Userid = anotherTableOrTableName.Status 

使用這些查詢,您可以更新,翻拍,修改和查詢數據庫表。

+0

你可能不理解我 - 從你的每個'FirstName'的例子中,我需要自動引入'StatusOrYourColumn'。所以,當我添加'Name1'' StatusOrYourColumn'變爲1時,當我添加第二次'FirstName'在當前行'StatusOrYourColumn'成爲2. – Kin

+0

我在哪裏''Uniqueid''替換'狀態'。然後當使用'INSERT'時,給該字段一個「NULL」值,以便自動增加。如果你想手動使用這個'SET Status = Status + 1' – sourRaspberri