我正在创建一个包含3个表的视图。每个表都有它的主键。然而,在视图中为了拥有一个主键,我必须使用一个复合主键(3个表的主键的组合)。
但是,我想在视图中添加一个列作为主键,它只是为了视图的目的而创建的。作为视图定义的一部分,它应该是唯一的(自动递增,因为它主要是一个INT)。我如何才能做到这一点?
我使用的是MySQL 5.1
发布于 2009-12-29 06:17:42
您可以使用各种方法向视图数据插入唯一的ID,例如:
SELECT @rownum:=@rownum+1 as id, mytable.*
FROM (SELECT @rownum:=0) r, mytable;然而,这不是一个主键,它是不一致的,并会随着数据的变化而改变。
你到底需要钥匙做什么?
发布于 2012-09-20 03:48:47
投票率最高的答案是
SELECT @rownum:=@rownum+1 as id, mytable.*
FROM (SELECT @rownum:=0) r, mytable;不正确-您不能在mysql中创建在FROM中使用子选择的视图。您唯一的选择是将一组列视为组合键。
发布于 2009-12-29 06:12:04
视图没有主键或索引- mysql引擎将使用基表上定义的索引和键。
https://stackoverflow.com/questions/1971826
复制相似问题