2013-01-18 73 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