MySql 中的唯一键
我有一个包含四列的表:Col1、Col2、Col3 和 Col4。
Col1、Col2、Col3 是字符串,Col4 是具有自动增量的整数主键。现在我的要求是拥有 Col2 和 Col3 的独特组合。
我的意思是说喜欢。
Insert into table(Col1, Col2, Col3) Values ('val1', 'val2', 'val3');
Insert into table(Col1, Col2, Col3) Values ('val4', 'val2', 'val3');
第二条语句必须抛出错误,因为表中存在“val2”、“val3”的相同组合。但我不能将其作为主键,因为我需要一个自动增量列,因此 col4 必须是主键。请让我知道一种方法,可以将两者都包含在我的表中。
I have a table with four Columns: Col1, Col2, Col3, and Col4.
Col1, Col2, Col3 are strings, and Col4 is a integer primary key with Auto Increment. Now my requirement is to have unique combination of Col2 and Col3.
I mean to say like.
Insert into table(Col1, Col2, Col3) Values ('val1', 'val2', 'val3');
Insert into table(Col1, Col2, Col3) Values ('val4', 'val2', 'val3');
the second statement has to throw error as the same combination of 'val2','val3' is present in the table. But i cant make it as a primary key as i need a auto increment column and for that matter the col4 has to be primary. Please let me know a approach by which i can have both in my table.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以在数据库模式中设置两个或多个键的组合必须唯一的要求。可以在这里找到:
http://dev.mysql。 com/doc/refman/5.1/en/alter-table.html
这可以通过以下命令来完成
You can set in the database schema a requirement that a combination of two or more keys be unique. This can be found here:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
This could be done with a command such as
您可以通过在这些字段上创建唯一索引来做到这一点。
http://dev.mysql.com/doc/refman/ 5.0/en/create-index.html
来自该文档:
UNIQUE 索引创建一个约束,使得索引中的所有值必须是不同的。如果您尝试添加键值与现有行匹配的新行,则会发生错误。此约束不适用于除 BDB 存储引擎之外的 NULL 值。对于其他引擎,UNIQUE 索引允许可以包含 NULL 的列有多个 NULL 值。如果为 UNIQUE 索引中的列指定前缀值,则列值在前缀内必须是唯一的。
You can do this by creating a unique index on those fields.
http://dev.mysql.com/doc/refman/5.0/en/create-index.html
From that doc:
A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if you try to add a new row with a key value that matches an existing row. This constraint does not apply to NULL values except for the BDB storage engine. For other engines, a UNIQUE index allows multiple NULL values for columns that can contain NULL. If you specify a prefix value for a column in a UNIQUE index, the column values must be unique within the prefix.
我会检查这些值作为插入逻辑的一部分。在插入之前,写一些类似...
I would check for these values as part of your insert logic. Before you insert, write something like...