我有一个名为'members‘和'users’的两个表,这两个表都有两列:姓名和性别。我希望每次我向members表添加一个新的'name‘时,该行'gender’列中的值将从'users‘表中更新:
**users:**
Emilia - F
John - M
David - M
**members:**
Synthia - F
'INSERT INTO members VALUES('David')...or whatever'
now **members:**
Synthia - F
David - M发布于 2009-11-28 22:38:44
您可以使用insert trigger。然而,你不应该在两个不同的表中有性别的副本-这会破坏常态化,需要更多的存储空间,并且有两个副本不同步的风险。
相反,当您需要来自这两个表的信息时,您应该使用外键并连接表。您可以使用用户名作为外键,或者使用自动增量id (如果有)。
发布于 2009-11-28 22:41:30
我想你说的是计算列,但我不确定MySQL是否支持它们(谷歌一点,我可能错了)。为什么不在两个表上创建一个视图呢?你可以试试像这样的..。
CREATE VIEW MemberDetail
AS
SELECT mem.Name,
usr.Gender
FROM Members mem
INNER JOIN Users usr ON mem.Name = usr.Name;发布于 2009-11-28 23:07:13
INSERT ... SELECT语法怎么样?
INSERT into members (name, gender)
SELECT u.name, u.gender FROM users u WHERE u.name='Cynthia';https://stackoverflow.com/questions/1812641
复制相似问题