`

mysql中同义词的一个模拟

阅读更多
mysql没提供同义词的功能,oracle有,但其实可以简单模拟下。比如:

CREATE DATABASE seussdb;
CREATE DATABASE appdb;


GRANT ALL ON seussdb.* TO student;
GRANT ALL ON appdb.* TO student;

有两个数据库,给一个用户授权权限能访问它们;
然后往其中一个db中插入数据:


USE seussdb;


CREATE TABLE hat
( hat_id    INT UNSIGNED PRIMARY KEY AUTO_INCREMENT
, hat_text  VARCHAR(20));


INSERT INTO hat (hat_text) VALUES ('Thing 1');
INSERT INTO hat (hat_text) VALUES ('Thing 2');

然后在另外一个数据库中建立视图:
/* Connect to the application database. */
USE appdb;


CREATE VIEW hat AS
  SELECT * FROM seussdb.hat;


SELECT * FROM hat;


INSERT INTO hat (hat_text) VALUES ('Thing 3');


SELECT * FROM hat;

  这样来说,hat其实就是同义词拉:
hat_id | hat_text |
+--------+----------+
|      1 | Thing 1  |
|      2 | Thing 2  |
|      3 | Thing 3  |
+--------+----------+
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics