引用外部行中的特定列

时间:2013-10-04 11:56:47

标签: sql sqlite

TableA:
ID     NAME

0      Thomas
1      Johnson
2      Harry

TableB:

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

我在“TableA”栏目的“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

1 个答案:

答案 0 :(得分: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;