Não é recriar a FKs e sim cria-las, no primeiro exemplo do script sql ele não tem relacionamento entre si pq precisa ser declarado, no segundo ALTER TABLE...
é o retorno do script com o relacionamento das tabelas depois de lido as tabelas e feito o mapeamento e assim criando o relaciomanento entre elas.
nesse exemplo pra tabela User
ter o relaciomaneto com User_Email
ela precisaria ser declarada assim:
CREATE TABLE IF NOT EXISTS `Test_App`.`User` (
`Id_User` INT NOT NULL AUTO_INCREMENT,
`Id_User_Email` INT NOT NULL,
PRIMARY KEY (`Id_User`),
-- criando relaciomaneto com a user_email
CONSTRAINT `fk_user_email` FOREIGN KEY (`Id_User_Email`)
REFERENCES `Test_App`.`User_Email` (`Id_User_Email`)
);
adicionado a CONSTRAINT
na tabela, e isso que meu script faz, ele cria as CONSTRAINT, evitando essa duas linhas ser declarada nas tabelas
No orm ainda preciso declarar as FKs, exemplo:
ORM PrismaJS
model User {
id_user Int @id @default(autoincrement()) @map("Id_User")
id_user_email Int @map("Id_User_Email")
user_email User_Email @relation(fields: [id_user_email], references: [id_user_email])
@@map("User")
}
no ORM ainda teria que declara essa linha user_email User_Email...
pra criar o relaciomaneto entre elas no BD
e meu script não atenderia pessoas que criar as tabelas diretamente por algum ORM, somente pessoas que lida com script sql