Mysql 将foregin键添加到其他表

Mysql 将foregin键添加到其他表,mysql,sql,Mysql,Sql,我正在尝试使用mySQL将我的st_accounts列中的username添加到我的表results st_账户表 `id` int(11) NOT NULL, //Primary Key `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, `email

我正在尝试使用mySQL将我的
st_accounts
列中的
username
添加到我的表
results

st_账户表

  `id` int(11) NOT NULL,    //Primary Key
  `firstname` varchar(50) NOT NULL,
  `lastname` varchar(50) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(100) NOT NULL,
  `img` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  `score_ID` int(11) NOT NULL,     //Primary key
  `score` int(20) NOT NULL,
  `date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
结果表

  `id` int(11) NOT NULL,    //Primary Key
  `firstname` varchar(50) NOT NULL,
  `lastname` varchar(50) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(100) NOT NULL,
  `img` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  `score_ID` int(11) NOT NULL,     //Primary key
  `score` int(20) NOT NULL,
  `date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我想你想要:

create table accounts (
  account_id int auto_increment primary key,
   . . .
);

create table results (
  result_id int auto_increment primary key,
  account_id int not null
  score int NOT NULL,
  score_date date NOT NULL,
  constraint fk_results_accounts foreig key (accounts_id) references accounts(account_id)
) ;
注:

  • 明确声明
    主键
    ,而不是在注释中
  • 我的约定是在表名(单数)后面命名主键,并在其后面加上
    \u id
  • 外键与主键具有相同的名称--自记录
  • 我设置了整数主键
    自动递增
    ,因此数据库可以分配唯一的值

我已经有了一个用于注册和登录的accounts表。