Cita: Hay alguna manera de poder hacerlo por SQL?
Son cosas que sólo existen en SQL...
El tema es que hay ciertas reglas:
1) La FK sólo se puede definir si ya existe la PK a que apuntará.
2) Tiene que tener la misma cantidad de campos que la PK de origen.
3) Debe poseer el mismo tipo de dato, charset, collation y rango.
4) Si ya existen datos al momento de intentar crear la FK, los datos deben respetar la restricción impuesta por la relación FK->PK.