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

din*_*igo 0 mysql sql database

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

+--------+-----------------------------------------------+
| userId | visitorId                                     |
+--------+-----------------------------------------------+
|      1 | 015dc155838800b156253da37f0004078003b07000c48 |
|      2 | 015dbfdaeac50014c675298c726b04072003e06a00918 |
|      3 | 015dc26525ea00032eed79a4737d04092003a08a00978 |
+--------+-----------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

我这样做是使用此代码

CREATE TABLE Users (
    userId int PRIMARY KEY AUTO_INCREMENT,
    visitorId varchar(255),
);
Run Code Online (Sandbox Code Playgroud)

简单,不是吗?我注册了每个新访问者,并userId为她生成一个唯一的ID().但是如何避免插入两次相同的visitorId

INSERT INTO Users (visitorId) VALUE ("1234"), ("1234"), ("1234")
+--------+-----------+
| userId | visitorId |
+--------+-----------+
|      1 | 1234      |
|      2 | 1234      |
|      3 | 1234      |
+--------+-----------+
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

您希望visitorId列上有唯一的索引或约束:

alter table users add constraint unq_users_visitorId unique (visitorId);
Run Code Online (Sandbox Code Playgroud)