我不确定,我错过了什么?无论我多么努力地尝试改变价值观,它总是给我同样的错误。顺便说一下,这个数据库是通过Java代码完成的。这是第一个表:为什么我得到errno:150“外键约束不正确”?
第一个表(表名= DoctorsDetails)
sql = "CREATE TABLE IF NOT EXISTS " + tableName +
" (doctor_id INT not NULL AUTO_INCREMENT UNIQUE,"+
" first_name VARCHAR(50)," +
" mid_name VARCHAR(50)," +
" last_name VARCHAR(50)," +
" tel VARCHAR(32)," +
" fax VARCHAR(32)," +
" email VARCHAR(40)," +
" agenda TEXT," +
" PRIMARY KEY (doctor_id))" +
" ENGINE=InnoDB DEFAULT CHARSET=utf8";
这是第二个表(表名=学生):
sql = "CREATE TABLE IF NOT EXISTS " + tableName +
" (student_id INT NOT NULL AUTO_INCREMENT UNIQUE," +
" first_name VARCHAR(50)," +
" mid_name VARCHAR(50)," +
" last_name VARCHAR(50)," +
" age INT(50)," +
" class INT(11)," +
" gender CHAR(1)," +
" doctor_id INT," +
" diseases SET('a', 'b', 'c', 'd')," + // TODO: replace the values in set with real
" more_info TEXT," +
" height INT(255)," +
" weight INT(255)," +
" waist INT(255)," +
" appointment VARCHAR(50)," +
" PRIMARY KEY (student_id)," +
" CONSTRAINT FK_StudentDoctor"+
" FOREIGN KEY(doctor_id) REFERENCES doctors(doctor_id))" +
" ENGINE=InnoDB DEFAULT CHARSET=utf8";
难道你们去翻它?我一直在寻找它2天,无法弄清楚为什么我得到这个错误。 2年前,我从未学习过MySQL。 MySQL中有东西改变了吗?
OMG我怎么没有发现....我觉得如此转储:/我一直在玩这个数据库从昨天 –