找回密码
 立即注册

QQ登录

只需一步,快速开始

baiccladmin

高级会员

118

主题

241

帖子

1153

积分

高级会员

积分
1153
baiccladmin
高级会员   /  发表于:2022-9-15 14:54  /   查看:1412  /  回复:3
1金币
有没有大佬用过oracle数据库

再存储的时候,如何自动递增ID呢


在navicat里设置了SEQ的序列,但是在新增存储数据的时候,就报错

该怎么来解决呢
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

Oracle 实现递增 ID 一般都用序列来实现。 首先要为表创建一个序列; 然后一种方法是在新增数据时主动获取序列的 NEXTVAL,并插入到表格中。比如: 另外一种就是创建一个触发器,实现自动递增。 详情可以看:在 Oracle 中实现自增ID - 简书 (jianshu.com)

3 个回复

倒序浏览
最佳答案
最佳答案
SimonPortgas悬赏达人认证 活字格认证
中级会员   /  发表于:2022-9-15 14:54:11
来自 2#
Oracle 实现递增 ID 一般都用序列来实现。

首先要为表创建一个序列;
然后一种方法是在新增数据时主动获取序列的 NEXTVAL,并插入到表格中。比如:
  1. INSERT INTO "TEST" ("ID", "NAME") VALUES (TEST_ID_SEQ.NEXTVAL, 'name1');
复制代码
另外一种就是创建一个触发器,实现自动递增。

详情可以看:在 Oracle 中实现自增ID - 简书 (jianshu.com)
回复 使用道具 举报
baiccladmin
高级会员   /  发表于:2022-9-15 15:55:00
3#
SimonPortgas 发表于 2022-9-15 15:20
Oracle 实现递增 ID 一般都用序列来实现。

首先要为表创建一个序列;

麻烦问下,第一种方法,要怎么来实现呢
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-9-15 17:35:50
4#
感谢楼上大佬的支持~
不过第一种方式要求使用时在SQL语句中将 ID 的值设置为序列的下一个值TEST_ID_SEQ.NEXTVAL,如果您实际使用过程中不是直接通过SQL命令来操作数据的,想要插入数据就自动自增,就需要使用触发器来实现了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部