可以在MySQLl数据库中使用数据类型:varchar吗?

问题描述

我尝试添加类型为VARCHAR的外键,该外键也引用另一个类型为VARCHAR的表列。这两个列的类型和长度都是相同的,但我不断收到错误消息: 无法添加外键约束。缺少约束索引

下面的第一个表在创建时没有问题,但是第二个表是向其抛出错误的表:无法添加外键约束。引用表'users'中约束'FK_Session_User'的索引缺失

我要引用的列是UserName列。

CREATE TABLE Users (
    UserID INT NOT NULL AUTO_INCREMENT,Role_Code VARCHAR(15) NOT NULL,UserName VARCHAR(40) NOT NULL,Password TEXT NOT NULL,CONSTRAINT PK_User PRIMARY KEY (UserID,UserName),CONSTRAINT FK_User_Roles FOREIGN KEY (Role_Code)
    REFERENCES Roles(Role_Code));


CREATE TABLE Auth_Users (
    SessionID VARCHAR(96) NOT NULL,Last_Visit TIMESTAMP DEFAULT CURRENT_TIMESTAMP,CONSTRAINT PK_AuthUser PRIMARY KEY (SessionID),CONSTRAINT FK_Session_User FOREIGN KEY (UserName)
    REFERENCES Users(UserName) 
    );

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)