我试图在由Waterline创建的数据库中手动创建FK但由于关联列与pk的类型不同而被阻止。
[警告,错误代码150,SQLState HY000]创建表 ' accounting_db /#SQL-1c64_c'外键约束失败。那里 在引用的表中引用的列没有索引 显示为第一列。
模型
//Person
{
"identity" : "person",
"tableName": "PERSON",
attributes: {
"id":{
"type" : "integer",
"primaryKey" : true,
"autoIncrement" : true,
"columnName" : "ID"
},
"name":{
"type" : "string",
"columnName : "NAME"
}
}
}
//Pet
{
"identity" : "pet",
"tableName": "PET",
attributes: {
"id":{
"type" : "integer",
"primaryKey" : true,
"autoIncrement" : true,
"columnName" : "ID"
},
"name":{
"type" : "string",
"columnName : "NAME"
},
"person":{
"model" : "person",
"columnName : "PERSON_ID"
}
}
}
两个模型的CREATE TABLE查询
CREATE TABLE PERSON (
`ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`NAME` VARCHAR(255),
PRIMARY KEY (`ID`)
);
CREATE TABLE PET (
`ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`NAME` VARCHAR(255),
`PERSON_ID` INT,
PRIMARY KEY (`ID`)
);
如您所见,表ID
的列PERSON
为INT UNSIGNED
,PERSON_ID
的列PET
的类型为INT
。
我该怎么对待这个?
谢谢!