自动增量字段不是SQL上的主键

时间:2017-09-06 15:49:22

标签: mysql sql database

我使用表格将一些ID转换为其他ID,反之亦然。

+--------+-----------------------------------------------+
| userId | visitorId                                     |
+--------+-----------------------------------------------+
|      1 | 015dc155838800b156253da37f0004078003b07000c48 |
|      2 | 015dbfdaeac50014c675298c726b04072003e06a00918 |
|      3 | 015dc26525ea00032eed79a4737d04092003a08a00978 |
+--------+-----------------------------------------------+

我使用此代码

CREATE TABLE Users (
    userId int PRIMARY KEY AUTO_INCREMENT,
    visitorId varchar(255),
);
简单,不是吗?我注册了每个新访问者,并为她生成了一个唯一的ID(userId)。但是如何避免插入两次相同的visitorId

INSERT INTO Users (visitorId) VALUE ("1234"), ("1234"), ("1234")
+--------+-----------+
| userId | visitorId |
+--------+-----------+
|      1 | 1234      |
|      2 | 1234      |
|      3 | 1234      |
+--------+-----------+

2 个答案:

答案 0 :(得分:5)

您需要visitorId列上的唯一索引或约束:

alter table users add constraint unq_users_visitorId unique (visitorId);

答案 1 :(得分:4)

为列添加唯一

CREATE TABLE Users (
    userId int PRIMARY KEY AUTO_INCREMENT,
    visitorId varchar(255) UNIQUE,
);