Je voudrais savoir s'il est possible dans InnoDB en MySQL
d'avoir une table
avec une clé étrangère qui référence une autre table dans une base de données
différente ?
Et si oui, comment cela peut-il être fait ?
Je voudrais savoir s'il est possible dans InnoDB en MySQL
d'avoir une table
avec une clé étrangère qui référence une autre table dans une base de données
différente ?
Et si oui, comment cela peut-il être fait ?
Je ne vois aucune limitation sur https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html.
Alors utilisez simplement otherdb.othertable et vous serez bon.
@Code4R7 Assurez-vous que les tables utilisent le même moteur, comme le dit la documentation: "La table parent et la table enfant doivent utiliser le même moteur de stockage[...]" Pour changer le moteur de la table, ALTER TABLE my_table ENGINE = InnoDB;
A fonctionné pour MariaDB 10.1.16.
Il est possible : Lien pour le faire
Exemple (Table1 est dans database1 et HelloTable est dans database2) :
ALTER TABLE Table1
ADD clé étrangère FK_table1(NomColonneDeTable1)
REFERENCES db2.HelloTable(NomColonneDeHelloTable)
ALTER TABLE `tablename1`
AJOUTER CONTRAINTE `tablename1_student_id_foreign`
CLE ETRANGERE (`tablename1`.`id`)
REFERENCE `db2`.`tablename2`(`id`)
SUR DELETE CASCADE SUR UPDATE CASCADE;
si nous avons une table appelée answers dans db1 et un étudiant dans db2 appelé ramiyusu_offline
nous devons taper comme ci-dessous
ALTER TABLE `answers`
AJOUTER CONTRAINTE `answers_student_id_foreign`
CLE ETRANGERE (`id`)
REFERENCE `ramiyusu_offline`.`student`(`id`)
SUR DELETE CASCADE SUR UPDATE CASCADE;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.