我在mySQL中创建视图存在很大问题:
数据库DB1中的表A:
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
数据库DB2中的表B:
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
如果BEFORE DELETE,表A中的条目将通过触发自动转移到表B.
我需要一个视图,它给我表a和表b中的所有条目,好像它们仍然在同一个数据库的一个表中。可以在视图中忽略列archive_id
和archive_datetime
,因为此方案不需要它们。
答案 0 :(得分:1)
您可以使用UNION
:
SELECT * FROM a UNION SELECT * FROM b;
您只需将*
替换为所需的表格列。
答案 1 :(得分:1)
SELECT id, account, filename, filesize FROM a UNION ALL SELECT id, account, filename, filesize FROM b
当然我一定错过了什么?