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)