Я массовая проблема, создавая вид в MySql:mySQL вид для двух разных таблиц?
таблицу А в базе данных 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
Таблица B в базе данных 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
Запись из таблицы A автоматически передается в таблицу B через триггер, если перед удалением.
Мне нужно представление, которое дает мне все записи из таблицы a и таблицы b, как если бы они все еще находились в одной таблице той же базы данных. Столбцы archive_id
и archive_datetime
могут игнорироваться в представлении, поскольку они не нужны для этого сценария.
Это прекрасно сделал трюк! UNION не пришла мне в голову :(Можно ли включить столбец, содержащий имя таблицы, где находится соответствующая запись? – glutorange
Вы можете настроить запрос как 'SELECT *, 'a' AS table_name FROM UNION SELECT *, 'b' AS table_name FROM b; '. Снова просто замените' * 'на другие нужные столбцы таблицы. – Flinsch