创建视图时插入自增id

因为在实际工作中需要查询最大id,来求出总的数量,有时候由于数据的删除导致Max(id)求出的,与实际的数量是不符的,故想到用视图插入自增id来使Max(id)求出的即为总数。

Create view view_MYAddId
As
select row_number() over (order by tb.id) as myAddId,* from (SELECT a.* FROM person as a 
inner JOIN ConsultorNum b ON a.id=b.id ) AS tb

SELECT MAX(myAddId) FROM view_MYAddId
查询出的即为总数

### SQL 插入数据自动量的实现方法 对于不同的数据库管理系统,实现插入数据自动生成唯一标识符的方法有所不同。 #### SQL Server 中使用 `IDENTITY` 关键字 在 SQL Server 中,可以定义一个带有 `IDENTITY` 属性的列来实现自动量功能。当向表中插入新记录,SQL Server 将自动为此列分配唯一的递值[^2]。 ```sql CREATE TABLE Employees ( EmployeeID INT IDENTITY(1,1) PRIMARY KEY, FirstName NVARCHAR(50), LastName NVARCHAR(50), HireDate DATE ); ``` #### PostgreSQL 使用 `SERIAL` 数据类型 PostgreSQL 提供了更简洁的方式——通过声明列为 `SERIAL` 类型即可达到相同的效果。这会在后台创建序列对象,并将其绑定到特定字段上以确保每次插入操作都能获得新的编号[^1]。 ```sql CREATE TABLE employees ( employee_id serial PRIMARY KEY, first_name varchar(50), last_name varchar(50), hire_date date ); ``` 上述两种方式均允许用户省去手动指定主键值,在执行插入命令不需提供该字段的具体数值;系统会依据设定规则自行处理这一过程. #### FlinkSQL 和其他大数据环境下的应用实例 除了传统的关系型数据库外,在某些分布式计算框架如 Apache Flink 结合 HDFS 或 Hive 的场景下也可以采用类似的机制来进行数据同步与更新。例如可以通过构建视图的方式来捕获最新的变更日志并应用于目标存储层面上[^3]. ```sql -- 创建视图用于获取当天的数据变化情况 CREATE VIEW latest_changes AS SELECT * FROM ods_fmys_goods_old WHERE dt = CURRENT_DATE() UNION ALL SELECT * FROM ods_binlog_data_table WHERE dt = CURRENT_DATE(); ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值