Oracle使用序列+触发器实现表自增主键

2023-11-07

1.建表

-- Create table 创建表 test
create table TEST
(
  testid NUMBER not null,
  name   NVARCHAR2(20) not null
)

--comment 注释
comment on column TEST.testid  is 'ID';
comment on column TEST.name  is '名称';

-- Create/Recreate primary, unique and foreign key constraints 加主键
alter table TEST add constraint PK_TEST primary key (TESTID)


2.创建索引

CREATE SEQUENCE test_sequence
MINVALUE 1
MAXVALUE 999999999
START WITH 1
INCREMENT BY 1
CACHE 20
ORDER; 

3.创建触发器

CREATE OR REPLACE TRIGGER test_tg
BEFORE INSERT ON test 
FOR EACH ROW
	DECLARE
		-- local variables here
	BEGIN
		--注意 这里的 INTO:new. 后面加需要自增的字段名称 这里对应 test表中的 testid 列

		SELECT test_sequence.nextval INTO:new.testid FROM dual;
		
	END test_tg;

4.测试

--插值
INSERT INTO TEST VALUES(NULL,'卡卡西');
INSERT INTO TEST VALUES(NULL,'阿斯玛');
INSERT INTO TEST VALUES(NULL,'夕阳红');
INSERT INTO TEST VALUES(NULL,'雷藏');
INSERT INTO TEST(NAME) VALUES('皮卡丘')

--查询
SELECT *FROM TEST;

结果图:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle使用序列+触发器实现表自增主键 的相关文章

  • SQL Server 2008 R2 内连接无法匹配 varchar 字段,因为它包含特殊字符

    我们正在将 Microsoft SQL Server 2008 R2 用于我们的经典 ASP 应用程序之一 我们有两张表 TableA TableB TableA有以下列 InstName varchar 1024 TableB有这些列 I
  • Oracle SQL-根据记录的日期与历史记录标记记录

    这是我在论坛上的第一篇文章 通常我能够找到我需要的东西 但说实话 我不太确定如何针对该问题提出正确的问题 因此 如果论坛上已经有答案而我错过了 请接受我的歉意 我通过 Benthic Software 在 Oracle 数据库中运行以下代码
  • SQL Android 错误:没有这样的表

    因此 每次我在位于 AddContacts 类中的 EditText 字段中输入数据时 我的对话框都会显示我已成功添加信息 但在日志 cat 中却显示没有这样的表 contactsTable 我认为错误出在我的数据库类中的 onCreate
  • Allen Browne 的 ConcatRelated() 错误 3061:参数太少

    我正在尝试创建给定仓库的产品列表 Allen Browne 的 ConcatRelated 函数似乎是在链接变量相同时创建列表的经过验证的正确方法 但我无法让它工作 我已将我的信息分解为单个查询 qry Products SELECT qr
  • SQL Server 每年的第一个星期一

    如何使用 T SQL 查找 一年中的第一个星期一 这是 ngruson 发布的链接中的示例 http sqlbump blogspot nl 2010 01 first monday of year html http sqlbump bl
  • C# 中的 Oracle 连接 - 连接字符串

    我目前正在尝试用 C 构建一个应用程序并将其连接到在 Oracle 11g 中运行的实时数据库 我有以下连接详细信息 Host IP 10 204 1 3 Port 1521 DB Name PROD 我的源代码 string connSt
  • 将逗号分隔的主数据替换为列中的描述

    有 2 个 SQL Server 表 Products Name Status Code Product 1 1001 1003 Product 2 1001 1005 1006 Status Code Description 1001 S
  • 从 SQL 数据库获取日期时间

    我的数据库表中有一个 DateTime 记录 我编写一个查询从数据库中获取它 string command2 select Last Modified from Company Data where Company Name Descrip
  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • 处理大数据表时应该如何使用Hibernate Mapping

    问题定义 我有一个包含大量数据 超过 100 000 行 的数据库表 表结构如下 AppID DocID DocStatus 1 100 0 1 101 1 2 200 0 2 300 1 每个 applicationID 可能有数千个文档
  • 获取从开始日期到结束日期的活跃周数

    我的订阅数据如下所示 数据显示用户何时购买订阅 它有user id subscription id start date and end date 我已经得出wk start and wk end从中 user subscription i
  • 内连接 3 个表

    我正在使用 PHP 和 PDO 我需要重新收集连接 3 个表的信息 photos albums 相册照片 该表具有以下结构 photos photo id int path varchar nick varchar date timesta
  • value >= all(select v2 ...) 产生与 value = (select max(v2) ...) 不同的结果

    Here https stackoverflow com questions 17026651 query from union of joins 17027784 noredirect 1 comment24611997 17027784
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • SQLite 使用循环重新编号 ID

    您好 我有一个包含许多插入行的表 我需要按 id 对所有行重新编号并排序 我找到了这段代码 但它对我不起作用 SET i 100 UPDATE main Categories SET ID i i 1 WHERE Name White AL
  • 将数据表传递到存储过程。有没有更好的办法?

    数据表可以以某种方式传递到 SQL Server 2005 或 2008 中吗 我知道标准方法似乎是将 XML 传递给 SP 并且可以通过某种方式轻松地将数据表转换为 XML 来实现这一点 将 NET 对象传递到 SP 怎么样 那可能吗 我
  • PostgreSQL WHERE 计数条件

    我在 PostgreSQL 中有以下查询 SELECT COUNT a log id AS overall count FROM Log as a License as b WHERE a license id 7 AND a licens
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都
  • parent_id 是外键(自引用)并且为 null?

    浏览 Bill Karwin 的书 SQL Antipatterns 第 3 章 Naive Trees 邻接表 父子关系 有一个注释表的示例 CREATE TABLE Comments comment id SERIAL PRIMARY
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐

  • 2、隐私计算--安全多方计算

    目录 安全多方计算 安全多方计算的技术架构 安全挑战敌手模型 安全多方计算关键技术 安全多方计算主要特点 安全多方计算应用 安全多方计算与区块链 JUGO平台 参考 https blog csdn net w365904 article d
  • 如何将MATLAB程序编译成独立可执行的程序

    一 生成独立可执行的程序 exe文件 步骤1 安装编译器 可有多种选择 matlab自带了一个LCC 推荐使用VC 6 0 我基于VS 2003实现 2 设置编译器 在matlab命令行输入mbuild setup以及mex setup 选
  • 【Diffusion模型系列1】DDPM: Denoising Diffusion Probabilistic Models

    0 楔子 Diffusion Models 扩散模型 是在过去几年最受关注的生成模型 2020年后 几篇开创性论文就向世界展示了扩散模型的能力和强大 Diffusion Models Beat GANs on Image Synthesis
  • MATLAB 神经网络NAR时间序列做预测

    本人用到MATLAB神经网络NAR时间序列做预测 根据网上的程序和MATLAB说明 整理出了程序如下 公共号 数据统计分析与挖掘 中回复 数据 获取本文所需数据 公共号 数据统计分析与挖掘 中回复 书籍 获取50本数据分析 python 统
  • mac vscode替换查找以及格式化快捷键

    command option f 当前文件替换 command f 当前文件查找 command shift h 全局替换 command shift f 全局查找 option shift F 格式化代码
  • openwrt如何关掉防火墙?

    答 1 阻止防火墙服务开机自动启动 etc init d firewall disable 2 关闭防火墙 etc init d firewall stop 转载于 https www cnblogs com dakewei p 10784
  • java math 保留_java怎么保留两位小数?具体方法是什么?

    小伙伴们在平时写程序的时 有没有需要在界面或者页面上保留小数点后两位的数据时候呢 今天 小编就来为大家讲一讲如何在Java中保留小数点后两位 一 使用java math BigDecimal 使用BigDecimal 保留小数点后两位 pu
  • 【环境搭建】机械革命 Z3 Air 双系统 原生Windows10 +Ubuntu 20.04.2.0 LTS 桌面版 配置

    欲望是一半生命 冷漠是一半死亡 文章目录 前言 一 前期准备 二 开始安装 1 压缩空间 2 制作安装U盘 3 安装系统 4 安装显卡驱动 总结 前言 众所周知 在Windows上尝试搭建深度学习环境只会带来无尽的痛苦 在Ubuntu上亦是
  • 【Python 虚拟环境创建】解决遇到的问题并在vscode上测试

    目录 一 前提准备 二 python虚拟环境创建 解决问题 virtualenv mkvirtualenv 不是内部或外部命令 也不是可运行的程序 或批处理文件 解决问题 pycharm终端提示无法加载文件 E software pytho
  • Try-Finally执行顺序的经典面试题

    try catch finally finally一定都会去执行 常在finally进行释放锁 释放连接等操作 案例一代码分析 package top chenxi test Created with IntelliJ IDEA Autho
  • LTspice 仿真电容阻抗特性曲线

    一 仿真原理图如图所示 二 信号源参数 三 电容参数 其中包含了ESR ESL 四 执行参数为 ac dec 1000 1 1000Meg 扫频模式 五 开始仿真 然后设置曲线为下图所示 电容电压除以电容电流得到阻抗频率特性曲线 六 得出电
  • [编程开发工具-6]:master 分支和 dev 分支区别

    目录 Git 中的 master 分支和 dev 分支之间有几个重要的区别 Git分支实践 master develop Feature feature 故障号 description hotfix Git 中的 master 分支和 de
  • set和unordered_set的类型要求

    set 需要支持小于比较 或者显示提供比较的仿函数 unordered set 可以转换成整型取模或者提供转换成整型的仿函数 可以支持等于比较或者提供等于笔记的仿函数
  • 【RDMA】qp数量和RDMA性能(节选)

    目录 QP数量上升性能下降 QP数量上升性能下降的原因 作者 bandaoyu 原始连接 https blog csdn net bandaoyu article details 122947096 spm 1001 2014 3001 5
  • String转BigDecimal,BigDecimal常用操作,以及避免踩坑

    String转BigDecimal String a 50 00 字符串类型 必须是数字 否则会报错 java lang NumberFormatException 异常 BigDecimal b new BigDecimal a BigD
  • 文件包含中的伪协议

    文件包含中的伪协议 1 利用前提 1 web 应用采用 include 等文件包含函数 并且需要包含的文件路径是通过用户传输参数的方式引入 2 用户能够控制包含文件的参数 被包含的文件可被当前页面访问 3 在使用文件包含漏洞时 必须要能知道
  • Git 常用命令详解

    原文 https blog csdn net ithomer article details 7529022 Git 是一个很强大的分布式版本管理工具 它不但适用于管理大型开源软件的源代码 如 linux kernel 管理私人的文档和源代
  • PyQt5的QtWidgets模块介绍

    目录 前言 一 PyQt5的QtWidgets介绍 二 主要类的用法 1 QApplication 2 QMainWindow 3 QWidget 4 QLabel 5 QPushButton 6 QLineEdit 7 QTextEdit
  • Arduino和LabVIEW射频温度监控系统

    该项目将要设计使用RF调制解调器的温度监控系统 该系统分为两部分 1 发送器部分和 2 接收器部分 发送器部分包括Arduino Uno 电源 温度传感器 LCD和RF调制解调器 接收器部分包括Arduino Uno 电源 PC LabVI
  • Oracle使用序列+触发器实现表自增主键

    1 建表 Create table 创建表 test create table TEST testid NUMBER not null name NVARCHAR2 20 not null comment 注释 comment on col