当前位置: 首页 > 面试题库 >

创建带有自动递增id列的MySQL视图

江阳羽
2023-03-14
问题内容

我有一个从中创建视图的MySQL数据库。是否可以为视图中的每一行添加一个自动递增的ID?

我试过了

CREATE ALGORITHM=UNDEFINED DEFINER=`database_name`@`%` SQL SECURITY DEFINER VIEW `MyView` AS 
set @i = 0;
select  @i:=@i+1 as `id`
        ...

但这在视图中不起作用。


问题答案:

抱歉-您无法在VIEW中自动递增(不过您可以在存储过程中执行此操作)。

从MySQL手册:

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



 类似资料:
  • 问题内容: 我们希望从mySQL获取一个自动递增的ID,而无需实际存储它,直到其他与mysql不相关的进程成功完成为止,这样,如果发生异常或应用程序崩溃,就不会存储该条目。我们需要使用ID作为其他进程的密钥。本质上,我们要“保留”自动增量,并将最后一行插入到mySQL中。我们不希望在知道整个过程成功完成之前插入任何行。 可以在mySQL中进行这种自动增量保留吗? 注意:我了解SQL事务。但是,我们

  • 问题内容: 我有一个使用hibernate和注解的j2ee应用程序。我如何注释我的pojo类中的Id字段以将其设置为自动增量或自动生成。在添加bean时,我是否将该字段留在bean中为null? 问题答案: 并在保留时将其保留为。(如果使用包装器) 在某些情况下,该策略被解析为或,因此你可能需要手动将其设置为(取决于基础数据库)。 似乎+ 指定序列名称对你有用。

  • 问题内容: 因此,我只是站了一个Spring Hibernate应用程序,似乎无法正确映射文件。我正在使用MySql 5和一个自动递增键。这是我的映射文件的ID部分。 这是生成的SQL 插入联系人(标题,名字,中间名,姓,后缀,职务,职位,护照号码,护照过期,雇主,饮食限制,secondary_contact_fname,secondary_contact_lname,secondary_cont

  • 问题内容: 我有一个使用hibernate和注解的j2ee应用程序。我如何注释我的pojo类中的Id字段以将其设置为自动增量或自动生成。在添加bean时,我是否将该字段留在bean中为null? 问题答案: 并在保留时将其保留为()。(如果使用/ 包装器) 在某些情况下,该策略被解析为to 或to ,因此您可能需要手动将其设置为or (取决于基础数据库)。 似乎 + 指定序列名称 对您有用。

  • 问题内容: 我需要创建一个包含增量ID的表,但是我希望这些ID根据另一列自动进行细分。这是我想要的: 我想要显示类似以下内容: 意思是我希望每个类别自动递增,并为插入的任何新类别从1重新开始。我希望在表中的任何插入处自己完成此操作(我不想在插入此表时记得这样做)。 我认为这可以通过窗口函数或触发器来完成,但我不知道如何做到。 编辑: 我希望数据能够持久保存,以避免在发生数据删除时对增量ID进行移位

  • 问题内容: 我在使用InnoDB的MySQL中有一个表,其中有一列名为“ id”的列。 所以我的问题是,每当我从表中删除最后一行然后插入新值时,新值都会在删除的ID之后插入。 我的意思是假设我的id是32,我想删除它,然后如果我在删除后插入新行,则列id会自动递增到33。因此序列格式被破坏了,即id = 30,31,33而且不是32。 因此,当我删除最后一列后插入时,请帮我分配ID 32(而不是3