将foregin键添加到其他表

时间:2019-03-03 18:14:56

标签: mysql sql

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

st_accounts表

  `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;

1 个答案:

答案 0 :(得分:1)

我想你想要

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)
) ;

注意:

  • 显式声明primary key,而不要在注释中声明。
  • 我的约定是在表名(单数)后加上_id来命名主键。
  • 外键与主键同名-自我记录。
  • 我制作了整数主键auto_increment,因此数据库可以分配唯一值。