0
TableA:
ID     NAME

0      Thomas
1      Johnson
2      Harry

TableB:

ID     IDA     ANAME
0      2       Harry
1      0       Thomas
2      1       Johnson

我在“IDA”列的“TableB”中创建了一个外键,它在“TableA”中引用了“ID”,具有以下内容:

FOREIGN KEY (IDA) REFERENCES TableA(ID)

对于“TableB”中的给定行,我可以获得上述约束定义的“TableA”中的相应行。那么如何确保“TableB”中特定行的“ANAME”在“TableA”中的相应行中采用“NAME”的值?我尝试了以下方法,但不幸的是它无效(“ANAME”错误附近缺少逻辑)

FOREIGN KEY (IDA) REFERENCES TableA(ID) ON UPDATE SET ANAME = TableA.Name
4

1 回答 1

3

简短的回答 - 跨表复制数据几乎从来都不是一个好主意,所以不要这样做。

在您需要时使用 ID 列上的外键从 TableA 中获取您的姓名,因此而不是

  SELECT id, ida, aname 
  FROM TableB;

利用

  SELECT b.id, b.ida, a.name AS aname
  FROM TableB b
  JOIN TableA ON b.ida = a.id;
于 2013-10-04T12:14:44.637 回答