如何允许phpmyadmin上的列具有相同的数据值?

时间:2014-03-03 10:33:21

标签: mysql phpmyadmin

我创建了一个名为password的列,当users尝试创建具有类似密码的帐户时,我希望收到"Duplicate entry for key"错误。

密钥'password_2 '重复输入'admin'我没有password_2列,只有一个名为“password”的列。

我尝试过设置密码列unique,但仍然做同样的事情。有什么想法吗?

这是表格架构

CREATE TABLE admin (  
    id int(16) NOT NULL AUTO_INCREMENT,  
    email varchar(32) NOT NULL, 
    firstName varchar(32) NOT NULL,  
    lastName varchar(32) NOT NULL,  
    password varchar(32) NOT NULL,  
    DateOfBirth date NOT NULL,  
    Gender char(1) NOT NULL,  
    phoneNumber varchar(50) NOT NULL, 
    PRIMARY KEY (id), 
    UNIQUE KEY password_2 (password), 
    UNIQUE KEY email (email), 
    UNIQUE KEY password_3 (password), 
    UNIQUE KEY password_4 (password), 
    UNIQUE KEY password_5 (password), 
    KEY phoneNumber (phoneNumber) 
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1

1 个答案:

答案 0 :(得分:2)

您需要从unique中删除password索引,而不是将其添加到users

  

我尝试使密码列独一无二,仍然做同样的事情。有什么想法吗?

这就是您收到此错误消息Duplicate entry for key

的原因

从您的架构中删除此行

UNIQUE KEY password_2 (password), 
UNIQUE KEY password_3 (password), 
UNIQUE KEY password_4 (password), 
UNIQUE KEY password_5 (password), 

您的新架构看起来像

CREATE TABLE admin (  
    id int(16) NOT NULL AUTO_INCREMENT,  
    email varchar(32) NOT NULL, 
    firstName varchar(32) NOT NULL,  
    lastName varchar(32) NOT NULL,  
    password varchar(32) NOT NULL,  
    DateOfBirth date NOT NULL,  
    Gender char(1) NOT NULL,  
    phoneNumber varchar(50) NOT NULL, 
    PRIMARY KEY (id), 
    UNIQUE KEY email (email), 
    KEY phoneNumber (phoneNumber) 
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1