Mysql 添加外键约束
我正在尝试创建一个表,但我在使用Mysql 添加外键约束,mysql,Mysql,我正在尝试创建一个表,但我在使用外键时遇到问题 这是我尝试过的脚本: CREATE TABLE IF NOT EXISTS note_etudiant( num_insc int auto_increment, cin int foreign key references T_utilisateur(cin), nom varchar(25), note float )Engine=InnoDB DEFAULT CHARSET=latin1; 这就是我得到的错误
外键时遇到问题
这是我尝试过的脚本:
CREATE TABLE IF NOT EXISTS note_etudiant(
num_insc int auto_increment,
cin int foreign key references T_utilisateur(cin),
nom varchar(25),
note float
)Engine=InnoDB DEFAULT CHARSET=latin1;
这就是我得到的错误:
1064-您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解要使用的正确语法
近“外键参考”T_usilizateur(cin),
nom varchar(25岁),
3号线没有
创建列后,需要列出外键约束
cin int,
constraint foreign key (cin) references T_utilisateur(cin),
您需要与列分开创建外键。我还建议单独创建索引,以便可以控制索引的名称
试着这样做:
CREATE TABLE IF NOT EXISTS note_etudiant(
num_insc int auto_increment,
cin int,
nom varchar(25),
note float,
primary key (num_insc),
key cin (cin),
constraint fk_note_etudiant_to_t_utilisateur foreign key (cin) references T_utilisateur(cin)
)Engine=InnoDB DEFAULT CHARSET=latin1;
我尝试了这个脚本,但出现了以下错误:1075-表定义不正确;只能有一个自动列,必须将其定义为一个键
这也不起作用,这是我遇到的错误:1005-无法创建表'gestion\u note.note\u etudiant'(errno:150)
是t\u usiateur.cin
主键,还是至少是唯一键?它是有符号整数吗?运行此命令并查找“最新外键错误”以获取有关错误的更多详细信息:SHOW ENGINE INNODB STATUS\G
当我尝试此操作时,出现此错误:1075-表定义不正确;只能有一个自动列,必须将其定义为键,因此我将列num\u insc
定义为主键,然后出现以下错误:1005-无法创建表“gestion\u note.note\u etudiant”(errno:150)