MySql表类型,如何自动将列数据从一个表绘制到另一个表?

时间:2009-11-28 14:34:08

标签: mysql

我有一个名为'members'和'users'的2个表,它们都有2列:name&性别。我希望每当我向成员表添加新的“名称”时,该行中“性别”列中的值将从“用户”表中更新:

**users:**
Emilia - F
John - M
David - M
**members:**
Synthia - F

'INSERT INTO members VALUES('David')...or whatever'
now **members:**
Synthia - F
David - M

3 个答案:

答案 0 :(得分:4)

您可以使用insert trigger。但是,您不应该在两个不同的表中拥有性别副本 - 它会破坏规范化,需要更多存储空间以及两个副本将不同步的风险。

相反,当您需要来自两者的信息时,您应该使用外键并加入表。您可以使用用户名作为外键,或者使用autoincrement id(如果有的话)。

答案 1 :(得分:3)

我认为你在谈论一个计算列,但我不确定MySQL是否支持它们(谷歌有点,我可能是错的)。为什么不在两个表上创建一个视图呢?你可以试试像......

CREATE VIEW MemberDetail
AS
  SELECT mem.Name,
    usr.Gender
  FROM Members mem
  INNER JOIN Users usr ON mem.Name = usr.Name;

答案 2 :(得分:0)

INSERT ... SELECT语法怎么样?

INSERT into members (name, gender) 
SELECT u.name, u.gender FROM users u WHERE u.name='Cynthia';