首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MySQL中创建表别名

如何在MySQL中创建表别名
EN

Stack Overflow用户
提问于 2009-12-12 02:56:19
回答 5查看 70.5K关注 0票数 32

我正在将MS Access应用程序(已将表链接到MSSQL Server)迁移到MySQL。

为了克服一些MSAccess表命名问题,我正在寻求一种解决方案,以添加一个指向MySQL数据库中现有表的MySQL表别名。理想情况下,我想在mysql中创建别名'dbo_customers‘,它也会指向mysql中的customers表。

需要说明的是,我不想在这样的查询中给表名加上别名:

代码语言:javascript
复制
SELECT * FROM customers AS dbo_customers

相反,我希望能够发出以下查询:

代码语言:javascript
复制
SELECT * FROM dbo_customers

并让它从customers表返回数据。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-12 02:58:21

从我的脑海中

代码语言:javascript
复制
CREATE VIEW dbo_customers AS
SELECT * FROM customers

也许不是最好的解决方案,但应该可以工作,因为视图是可更新的。肯定适用于只读模式。

票数 42
EN

Stack Overflow用户

发布于 2009-12-12 02:58:32

您可以创建View

代码语言:javascript
复制
CREATE VIEW dbo_customers AS SELECT * FROM customers;

如果这对您不起作用,您可以尝试创建表的卷影副本,并使用触发器来保持表同步。

例如:

代码语言:javascript
复制
CREATE TABLE t1( id serial primary key, field varchar(255) not null );
CREATE TABLE dbo_t1( id serial primary key, field varchar(255) not null );

-- INSERT trigger
CREATE TRIGGER t1_dbo_insert AFTER INSERT ON t1
FOR EACH ROW BEGIN
    INSERT INTO dbo_t1 SET field = NEW.field;
    -- No need to specify the ID, it should stay in-sync
END

-- UPDATE trigger
CREATE TRIGGER t1_dbo_update AFTER UPDATE ON t1
FOR EACH ROW BEGIN
    UPDATE dbo_t1 SET field = NEW.field WHERE id = NEW.id;
END

-- DELETE trigger
CREATE TRIGGER t1_dbo_delete AFTER DELETE ON t1
FOR EACH ROW BEGIN
    DELETE FROM dbo_t1 WHERE id = OLD.id;
END

这不是一个确切的“化名”,也远远谈不上完美。但如果所有其他方法都失败了,这也是一个选择。

票数 9
EN

Stack Overflow用户

发布于 2010-01-15 18:03:15

通过合并表引擎,MySQL有一个更简单的解决方案:

假设我们有一个名为rus_vacancies的表,并且需要它的英语等效项

代码语言:javascript
复制
create table eng_vacancies select * from rus_vacancies;
delete from eng_vacancies;
alter table eng_vacancies ENGINE=MERGE;
alter table eng_vacancies UNION=(rus_vacancies);

现在,对于任何读写操作,表rus_vacancies等于表eng_vacancies

一个限制-原始表必须有ENGINE=MyISAM (可以通过“alter table rus_vacancies ENGINE=MyISAM”轻松完成)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1890155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档