Ich habe ein massives Problem Blick in mySQL erstellen:mySQL-Ansicht für zwei verschiedene Tabellen?
Tabelle A in der Datenbank 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
Tabelle B in der Datenbank 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
Einträge aus der Tabelle A sind automatisch über Trigger bei BEFORE DELETE in Tabelle B übertragen.
Ich brauche eine Ansicht, die mir alle Einträge aus Tabelle a und Tabelle b gibt, als ob sie noch in einer Tabelle der gleichen Datenbank waren. Die Spalten archive_id
und archive_datetime
können in der Ansicht ignoriert werden, da sie für dieses Szenario nicht benötigt werden.
Das hat den Trick perfekt gemacht! UNION kam mir nicht in den Sinn :(Gibt es eine Möglichkeit, eine Spalte einzufügen, die den Tabellennamen enthält, aus dem der entsprechende Eintrag stammt? – glutorange
Sie könnten die Abfrage wie 'SELECT *,' AS 'Tabellenname FROM UNION SELECT * anpassen. 'b' AS table_name FROM b; '. Ersetzen Sie einfach' * 'durch andere gewünschte Tabellenspalten. – Flinsch