6

我在 MySql 中创建了一个视图。但现在我的要求是在该视图中创建一个应该自动递增的 Id 列。

我目前的看法是:-

CREATE VIEW pending_assign_report_view AS
  select cg.group_name,c.client_name, wt.work_type,p.Minor_worktype, ay.year,aev.emp_name,ep.Date_assigned_on
from employee_project ep,active_employee_view aev, project p, client_group cg, client c,work_type wt,assessment_year ay
where ep.task_status_id=1 and ep.username=aev.username and ep.project_id=p.project_id and p.Year_id=ay.Year_id
and p.Client_group_id=cg.client_group_id and p.Client_id=c.Client_id and p.Work_type_id=wt.Work_type_id
order by cg.group_name,c.client_name, aev.emp_name;

现在我希望 Id 列作为第一列,本质上应该是 auto_increment 。我该怎么做?提前致谢。

4

4 回答 4

5

你可以在你的 SELECT 中用类似的东西来模拟它:

SELECT @rownum:=@rownum+1 AS rownum, dummy.*
FROM (SELECT @rownum:=0) r, dummy;
于 2013-06-19T08:15:25.273 回答
2

数据库中的视图是我们数据库中一些数据的镜像副本。实际上它是不存在的。它具有与主表相同的结构

所以它的结构不能改变

于 2013-06-19T09:44:32.037 回答
0

您可以使用“UIID()”函数为您提供唯一的(字母数字)标识。

看看这个:https ://stackoverflow.com/a/45963661/6083044

于 2017-08-30T14:58:39.000 回答
-1

select @rownum:=@rownum+1 'autoID',m.mediaThumbnailUrl , q.surveyID from (SELECT @rownum:=0) r, media m join question q on m.mediaAutoID = q.backgroundImageID ;

于 2015-02-21T12:05:31.643 回答