我很抱歉,如果"link"
不是這個提前的確切期限。MySQL鏈接表 - 查看,外鍵或觸發器?
我有一個用戶信息表(用戶&密碼)。我需要相同的用戶:密碼對才能出現在同一個數據庫的另一個表中。第二個表需要始終複製第一個表 - 如果從第一個表中刪除條目或添加條目 - 則更改必須立即應用於第二個表。
請,我需要的是如何可以做到這一點的例子,因爲我不知道的術語對谷歌搜索..
我只需要兩列是一個重複的,而不是整個表。
我很抱歉,如果"link"
不是這個提前的確切期限。MySQL鏈接表 - 查看,外鍵或觸發器?
我有一個用戶信息表(用戶&密碼)。我需要相同的用戶:密碼對才能出現在同一個數據庫的另一個表中。第二個表需要始終複製第一個表 - 如果從第一個表中刪除條目或添加條目 - 則更改必須立即應用於第二個表。
請,我需要的是如何可以做到這一點的例子,因爲我不知道的術語對谷歌搜索..
我只需要兩列是一個重複的,而不是整個表。
一個view可能工作取決於您現有系統施加的限制,以及那些imposed by views。它可以節省重複的數據:
CREATE TABLE web_users (username VARCHAR(255), password VARCHAR(255));
CREATE VIEW forum_users AS SELECT username, password FROM web_users;
INSERT INTO web_users VALUES ('user1', 'password1');
SELECT * FROM forum_users;
+----------+-----------+
| username | password |
+----------+-----------+
| user1 | password1 |
+----------+-----------+
INSERT INTO forum_users VALUES ('user2', 'password2');
SELECT * FROM forum_users;
+----------+-----------+
| username | password |
+----------+-----------+
| user1 | password1 |
| user2 | password2 |
+----------+-----------+
SELECT * FROM web_users;
+----------+-----------+
| username | password |
+----------+-----------+
| user1 | password1 |
| user2 | password2 |
+----------+-----------+
實施此類要求的有效方法是通過database trigger。
使用storage engine as INNODB in mysql
,做索引它
在MySQL中,術語叫做foreign key
。
您需要爲這個innodb storage engine
工作
細節:使用natural key
http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
然而,隨着foreign key
有一些缺點,
這個問題已經討論之前:How to choose my primary key?
我對這件事發生Unreason - 爲什麼要維護重複的信息?立即添加到第二個副本並從第二個副本中刪除似乎不起任何作用。 – Mike 2010-12-07 13:23:40
我剛剛解釋說,在Unreason的帖子 – DreamWave 2010-12-07 13:25:45
我認爲你正在尋找外鍵。使用正確的級聯選項將引用第一個表的外鍵添加到第二個表,這就是您所需要的。在這種情況下複製任何數據是不可接受的。在MySQL的情況下,你將不得不使用InnoDB存儲引擎才能工作(MyISAM不支持數據庫完整性功能,例如外鍵)。 – 2010-12-07 15:16:34