Mysql 将foregin键添加到其他表
我正在尝试使用mySQL将我的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
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
- 外键与主键具有相同的名称--自记录
- 我设置了整数主键
,因此数据库可以分配唯一的值自动递增