首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql表类型,如何自动将列数据从一个表绘制到另一个表?

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

Stack Overflow用户
提问于 2009-11-28 22:34:08
回答 3查看 233关注 0票数 1

我有一个名为'members‘和'users’的两个表,这两个表都有两列:姓名和性别。我希望每次我向members表添加一个新的'name‘时,该行'gender’列中的值将从'users‘表中更新:

代码语言:javascript
复制
**users:**
Emilia - F
John - M
David - M
**members:**
Synthia - F

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

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-28 22:38:44

您可以使用insert trigger。然而,你不应该在两个不同的表中有性别的副本-这会破坏常态化,需要更多的存储空间,并且有两个副本不同步的风险。

相反,当您需要来自这两个表的信息时,您应该使用外键并连接表。您可以使用用户名作为外键,或者使用自动增量id (如果有)。

票数 4
EN

Stack Overflow用户

发布于 2009-11-28 22:41:30

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

代码语言:javascript
复制
CREATE VIEW MemberDetail
AS
  SELECT mem.Name,
    usr.Gender
  FROM Members mem
  INNER JOIN Users usr ON mem.Name = usr.Name;
票数 3
EN

Stack Overflow用户

发布于 2009-11-28 23:07:13

INSERT ... SELECT语法怎么样?

代码语言:javascript
复制
INSERT into members (name, gender) 
SELECT u.name, u.gender FROM users u WHERE u.name='Cynthia';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1812641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档