J'ai un énorme problème créant une vue en mySQL:vue mySQL pour deux tables différentes?
Tableau A base de données DB1:
CREATE TABLE `a` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'internal ID',
`account` VARCHAR(10) NOT NULL DEFAULT '0',
`filename` VARCHAR(50) NOT NULL,
`filesize` BIGINT(15) NOT NULL DEFAULT '0'
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
Tableau B dans la base de données DB2:
CREATE TABLE `b` (
`archive_id` INT(10) UNSIGNED NULL AUTO_INCREMENT,
`archive_datetime` DATETIME,
`id` INT(10) UNSIGNED NOT NULL,
`account` VARCHAR(10) NOT NULL DEFAULT '0',
`filename` VARCHAR(50) NOT NULL,
`filesize` BIGINT(15) NOT NULL DEFAULT '0'
PRIMARY KEY (`archive_id`)
)
ENGINE=Archive
entrées du tableau A sont automatiquement transféré à la table B via le déclencheur si AVANT DE SUPPRIMER.
J'ai besoin d'une vue qui me donne toutes les entrées des tables a et b comme si elles étaient encore dans une table de la même base de données. Les colonnes archive_id
et archive_datetime
peuvent être ignorées dans la vue car elles ne sont pas nécessaires pour ce scénario.
Cela a parfaitement fait l'affaire! UNION n'est pas venu à l'esprit :(Est-il possible d'inclure une colonne contenant le nom de la table d'où provient l'entrée correspondante? – glutorange
Vous pouvez ajuster la requête comme 'SELECT *,' a 'AS nom_table FROM UNION SELECT *, 'b' AS nom_table FROM b; '. Encore une fois, remplacez simplement' * 'par d'autres colonnes de table désirées. – Flinsch