J'ai deux tables avec la même structure, A et B. Une certaine application est écrite de sorte qu'elle écrit toujours les mêmes données dans les deux tables.
Après une discussion avec un collègue sur la possibilité d'économiser de l'espace disque, je me demande si mysql ou postgresql a la capacité de créer sur table comme un "alias", ou "lien symbolique", d'un autre.
Je veux que le comportement soit très similaire à celui d'un lien symbolique de fichier logiciel; où la lecture à partir du lien symbolique lui-même ou de sa cible produira la même sortie, et l'écriture à l'un ou l'autre mettra à jour la cible.
mysql
postgresql
user50849
la source
la source
Réponses:
Pour autant que je sache, un nouveau Postgresql vous permet d'avoir des
INSTEAD OF
déclencheurs sur les vues. Donc, avoir une table, une vue en tantSELECT * FROM table1
queINSTEAD OF
déclencheur pourinsert, update, delete
devrait fonctionner pour vous. Cette approche ne fonctionnera pas dans Mysqlla source
Il est possible dans MySQL (en utilisant uniquement le moteur de stockage MyISAM) de créer une table à partir de zéro à l'aide de liens symboliques. Il est possible sous Linux et Windows (en utilisant des liens physiques):
Voici mes précédents articles sur ce sujet
Cependant, ce que vous proposez devra être fait en dehors de MySQL sous Linux.
Pour cet exemple
ÉTAPE 01) Créez la table1
ÉTAPE 02) Créez trois liens symboliques pour imiter TableB
ÉTAPE 03) Essayez d'insérer dans le tableau1 et de lire dans le tableau2. Essayez ensuite l'inverse.
Si tout se passe normalement, c'est comme ça que vous pouvez faire.
CAVEAT
la source