添加联合唯一索引可以保证数据库中指定的列组合唯一,防止重复数据的插入。在MySQL中添加联合唯一索引的方法如下:
- 在表创建时添加联合唯一索引:
CREATE TABLE example (
id INT NOT NULL,
name VARCHAR(255) NOT NULL,
age INT NOT NULL,
UNIQUE KEY idx_example(name, age)
);
示例说明:创建example
表时,通过UNIQUE KEY
添加名为idx_example
的联合唯一索引,索引列包含name
和age
两列。
- 在已创建的表中添加联合唯一索引:
ALTER TABLE example ADD UNIQUE KEY idx_example(name, age);
示例说明:通过ALTER TABLE
语句向已创建的example
表添加名为idx_example
的联合唯一索引。
值得注意的是,如果尝试插入的数据已经存在该联合唯一索引的列组合中,数据库将会报错。例如:
INSERT INTO example (id, name, age) VALUES (1, 'John', 20);
INSERT INTO example (id, name, age) VALUES (2, 'John', 20);
第二条INSERT INTO
语句将会导致以下错误报告:
ERROR 1062 (23000): Duplicate entry 'John-20' for key 'idx_example'
这提示我们,主键不允许重复,如果要插入相同的数据,需要考虑其他表结构设计方案。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql添加联合唯一索引及相同数据插入报错问题 - Python技术站