2010-05-11 50 views

回答

10

对不起 - 你不能自动增加视图(你可以在存储过程中做到这一点)。

MySQL Manual

视图定义是受 以下限制:SELECT语句 可以不是指系统或 用户变量。

+0

谢谢你的回答!由于缺乏答案,我猜测的原因很多...... – 2010-11-15 20:03:14

2
尝试

此,

CREATE VIEW view_wp_postmeta AS(
SELECT (
    SELECT count(meta_id) +1 
    FROM wp_postmeta 
    AS vtmp  
    WHERE vtmp.meta_id < pm.meta_id 
) AS vtmp_id, pm. * 
FROM wp_postmeta AS pm 
ORDER BY pm.meta_id DESC 
) 

在WordPress中meta_id = AUTO_INCREMENT在wp_postmeta TABLE,我为此创建图,其中在DESC顺序VIEW_ID行为就像AUTO_INCREMENT。

例如, 在 wp_postmeta - > meta_id [3,5,6,10,2,11] 这将在VIEW 出现 view_wp_postmeta - > 的view_id [6,5,4 ,3,2,1]

2

我知道这个问题很陈旧,但为了防止别人遇到这个问题,还有另一种方法。

重要说明:此方法是有效,只要自动增量是不是真的很重要,所以你只需要在视图中的行的唯一标识:

您可以使用UUID()函数,它为您提供了独特的字母数字标识符。查看文档在mysql-reference-manual

因此,你可以创建一个视图这样的:

Create view my-view AS 
Select UUID() as 'id', t.name, t.value 
from table t 
.... 
+0

该解决方案有一个主要缺点:每次访问视图时,UUID都会发生变化。 – Veve 2017-08-31 09:56:17