我想添加一个VARCHAR值作为外键。MySQL的 - 添加VARCHAR作为一个外键
我试图添加Password_Encryption表中的关键,但不能正常工作。然后我尝试创建一个INDEX,但这也不起作用。
我得到的错误是“错误代码:1215无法添加外键约束”。
据我所知,在Password_Encryption的PRIMARY KEY线逗号会导致错误。
我已经与此表是
CREATE TABLE Login (
login_id INT NOT NULL AUTO_INCREMENT,
login_date DATE NOT NULL,
customer_id INT DEFAULT 0,
business_id INT DEFAULT 0,
password_entered VARCHAR(16) DEFAULT 'password',
password_encryption VARCHAR(20),
PRIMARY KEY (login_id, login_date)
);
CREATE TABLE Password_Encryption (
encryption_id INT NOT NULL AUTO_INCREMENT,
login_id INT NOT NULL,
password_encryption VARCHAR(20),
password_saved VARCHAR(16) NOT NULL,
is_valid ENUM('false','true') NOT NULL DEFAULT 'false',
/*KEY pw_enc (password_encryption),*/
PRIMARY KEY (encryption_id),
/*CONSTRAINT pw_enc FOREIGN KEY (password_encryption) REFERENCES Login
(password_encryption)*/
);
CREATE INDEX pw_enc ON Password_Encryption(password_encryption);
ALTER TABLE Password_Encryption
ADD CONSTRAINT pw_enc FOREIGN KEY (password_encryption) REFERENCES Login (password_encryption);
我也看过堆栈溢出的其他答案。我竭尽所能地尝试了他们,但仍然无法实现。 –
请描述两个表格之间的关系。 –
Password_Encryption表中的password_encryption变量是取自具有相同命名变量的Login表的外键。我不知道它的代码。 –