我是数据库新手。我的问题是我创建了一个表signUp
,其列是
id、名字、姓氏、电子邮件和国家。
我想创建一个名为accout_recharge
其列的表,(email,balance)
并且每当我将记录插入注册表时,注册表中新添加的电子邮件也会使用引用或外键或任何需要但不重复的内容出现在 account_recharge 表中。
我是数据库新手。我的问题是我创建了一个表signUp
,其列是
id、名字、姓氏、电子邮件和国家。
我想创建一个名为accout_recharge
其列的表,(email,balance)
并且每当我将记录插入注册表时,注册表中新添加的电子邮件也会使用引用或外键或任何需要但不重复的内容出现在 account_recharge 表中。
你可以试试这个
CREATE TABLE signup (
id INT NOT NULL,
firstName varchar(50),
lastName varchar(50),
countryName varchar(50),
emailName varchar(50),
PRIMARY KEY (id),
index email_ind(emailName) -- updated here
) ENGINE=INNODB;
CREATE TABLE accout_recharge(
id INT,
balance DECIMAL,
email varchar(50),
FOREIGN KEY (email ) REFERENCES signup (emailName)
ON DELETE CASCADE
) ENGINE=INNODB;
MySql 外键在这里你可以找到关于外键参考的更多细节
更新:我忘了告诉你外键引用总是某种indexed
列。所以你需要把你的电子邮件列放在一个索引中。这就是为什么你得到错误:150