我有一个名为'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
答案 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';