我在 mySQL 中创建 View 时遇到了一个大问题:
数据库 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
如果在 DELETE 之前,表 A 中的条目会通过触发器自动传输到表 B。
我需要一个 View ,为我提供表 a 和表 b 中的所有条目,就好像它们仍在同一数据库的一个表中一样。 View 中可以忽略 archive_id
和 archive_datetime
列,因为此方案不需要它们。
最佳答案
您可以使用UNION
:
SELECT * FROM a UNION SELECT * FROM b;
您只需将 *
替换为所需的表格列即可。
关于两个不同表的 mySQL View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243770/