Mysql informa errno150, no se puede crear un error de tabla al crear claves externas

Motivo del error 1: los tipos de caracteres de la clave principal y la clave externa no coinciden

Primero cree dos tablas de la siguiente manera y luego ejecútelas. Se encuentra que la creación de las dos tablas falla. Después de verificar, se analiza el motivo porque el tipo de carácter de la clave primaria y la clave externa no coinciden. El ID de la tabla es de tipo int, y el tid de la tabla dos es char (10 ) Escriba, siempre y cuando se cambie a un tipo de carácter coherente para resolver el problema.
Si encuentra que la tabla que creó tiene la misma clave principal y el mismo tipo de carácter de clave externa, considere otras posibilidades, continúe.

create table one(
    id int primary key,
    oname VARCHAR(30)
);
create table two(
    tid char(10),
    tname VARCHAR(30),
    constraint t_o_sk foreign key (tid) references one(id) on delete cascade on update cascade  
##on delete cascade是级联删除,on update cascade 是级联更新
);

Motivo del error 2: la clave principal de la tabla principal no es la clave principal.
Si lo es y la tabla se crea de nuevo, puede utilizar alter para modificarla.
Si se descubre que este problema no se ha resuelto, se puede considerar el tercer caso a continuación.

alter table one modify id  int primary key;

Motivo del error 3: compruebe si la codificación de caracteres es coherente
Mysql informa errno150, no se puede crear un error de tabla al crear claves externas

Motivo del error 4: no se puede encontrar la columna a la que hace referencia la clave externa. Cuando se
agrega la clave externa, es posible que ya haya datos (datos históricos o el valor predeterminado establecido cuando se actualiza la tabla de la base de datos), pero estos datos pueden no estar necesariamente asociados con la clave externa Encuentra la fila correspondiente en la tabla. Esta situación también hará que falle la creación de la clave externa.

Supongo que te gusta

Origin blog.51cto.com/000011211684/2569663
Recomendado
Clasificación