我的mysqli数据库有错误(错误1005)

时间:2018-06-09 11:57:58

标签: mysql sql

我有这个表:

CREATE TABLE `maht_subs` (
`smaht_code` int(11) NOT NULL,
`smaht_name` varchar(50) DEFAULT NULL,
`smaht_mahbert` int(11) DEFAULT NULL,
`smaht_type` varchar(50) DEFAULT NULL,
`point_smaht` varchar(40) DEFAULT NULL
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `users` (
`number` int(11) NOT NULL,
`username` varchar(50) DEFAULT NULL,
`userlast` varchar(50) DEFAULT NULL,
`userid` varchar(10) NOT NULL,
`mgma_no` int(11) NOT NULL,
`password` text,
`useradmin` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

当我删除此查询时

create table maht_grades
(
id int AUTO_INCREMENT,
userid int,
smaht_code int,
moaad varchar(50),
date date,
grade_magen varchar(50),
grade_final varchar(50),
mahbert text,
constraint pk45 primary key(id),
constraint fko foreign key(userid) references users(number),
constraint fk13 foreign key(smaht_code) references maht_subs(smaht_code)
);

我收到此消息:

  
    

1005 - 无法创建表ministrymaht_grades(错误:150“外键约束形成错误”)

  

我检查了表users和maht_subs的数据类型, 但没有任何事情发生

有人可以帮我解决吗?

1 个答案:

答案 0 :(得分:0)

创建外键时,列引用应该与它引用的列具有完全相同的类型。将useridsmaht_code更改为int(11)而不是int,您应该没问题。