在mysql中,实现字段自增,只用给他设置为auto_increase就ok了
这是简单的傻子啊(但是多数据库共享,分布式计算就不适用了,呵呵)
在oracle中没有这样便捷的功能,所以只能用sequence加trigger来解决这个问题
以下是一个Demo:
创建sequence
-- create sequence of id of the table sql_template_set
create sequence sql_template_id_seq
increment by 1
start with 60
nomaxvalue
nominvalue
nocache;
创建表 sql_template_set (id为主键,并且为自增字段)
create table SQL_TEMPLATE_SET
(
SENTENCE VARCHAR2(2000),
TEMPLATESQL VARCHAR2(300),
TABLEIDS VARCHAR2(100),
ID NUMBER(6) not null
)
alter table SQL_TEMPLATE_SET
add constraint TEMPLATE_ID primary key (ID)
创建触发器,在insert数据之前,添加id的值
-- 创建自增触发器
create or replace trigger sql_template_con_tri
before insert on sql_template_set for each row
begin
-- 设置sql主键自增
select sql_template_id_seq.nextval into :new.id from dual;
end;
完毕,现在可以测试一下下
-- 测试表trigger
insert into sql_template_set(sentence,templatesql,tableids) values('dirktest','dirktest','dirktest')
commit;
结果主键id就从60开始,每加条数据递增1
分享到:
相关推荐
要修改这些设置,可以使用`SET`语句,比如`SET auto_increment_increment=10`将自增步长设置为10,而`SET auto_increment_offset=2`将初始值设定为2。请注意,如果`auto_increment_offset`的值大于`auto_increment_...
sql_mode,并且在sql的my.ini文件中的sql-mode 默认增加了其中的二种,一个是STRICT_TRANS_TABLES,就是导致auto_increament失败的mode,这个sql_mode主要用于 当一个值不能插入到表中是,则产生一个错误而不是一个警告并...
在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法。通常的设置自增字段的方法:创建表格时添加: 代码如下:create table ...
GST帐单应用程式 在此应用中,可以添加新产品,可以在产品... $create table tb_products (ID INT NOT NULL AUTO_INCREAMENT, name varchar(30), price int, gst int, PRIMARY KEY(ID)); 克隆Git存储库。 $ git clo
同时,需要检查生成的 *.hbm.xml 文件,如果主键是 auto_increament, 则 *.hbm.xml 文件里的主键产生方式需要设置为 identity。 2. 搭建 Struts 环境 在搭建 Struts 环境时,需要复制 struts*.tld 到工程的 WEB-...
通过上述知识点的介绍,我们了解了如何使用栈来实现算术表达式的求值过程。这包括了栈的基本操作、初始化、压入和弹出等关键步骤。这些知识点不仅适用于算术表达式的求值,也是理解更高级算法的基础。在实际编程中,...
- 当栈满时(`top` 达到 `stacksize - 1`),使用 `realloc` 增加栈的容量,增加的量为 `STACK_INCREAMENT` 乘以当前元素大小。 - 入栈操作将元素 `e` 存储在栈顶,并将 `top` 自增 1。 3. **取栈顶元素(Gettop...
5. **宏定义**:`#define STACK_INCREAMENT 10`和`#define STACK_INI_SIZE 100`是宏定义,用于设置栈的初始大小和增长量。这些常量使得代码更具可读性和可维护性。 6. **数据结构的结构体表示**:实验报告中定义了`...
laravel数据库迁移中integer类型是无法指定长度的,很多小伙伴对integer类型...查看了sql代码后发现通过integer指定长度创建的子段自动添加了auto increament 以及 primary key 属性 int not null auto_increment prim
Create React App入门该项目是通过引导的。可用脚本在项目目录中,可以运行:npm start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误...
在实际应用中,开发者需要根据这些指令来编写与13.56MHz模块通信的软件,实现读卡、写卡、认证等操作。同时,理解串口协议指令的格式对于确保数据传输的正确性至关重要。通过设置适当的波特率、校验和机制,可以有效...
在Java中,我们可以通过两种方式来实现临界区: - **使用`synchronized`关键字**:将需要保护的代码块包围在`synchronized`块内,同步块的锁对象是`syncObject`。只有获取到锁的线程才能进入同步块执行代码。例如...
在构造函数中,可以通过`this()`调用其他构造函数,实现代码复用。此外,`this`也可以用于初始化匿名内部类的成员,或者在静态上下文中引用非静态成员(尽管不推荐,因为静态成员属于类,而非实例)。 总的来说,`...
有时候,我们可能希望为特定的数据类型提供不同的实现。这时,我们可以使用模板特化。例如,对于`mycontainer`类模板,我们可能想要在处理`char`类型时有特别的行为: ```cpp template class mycontainer<char> { ...
needIncreament && ( variable += increament ); if ( num > list.length ) {} while ( len-- ) {} ``` - **单行声明数组与对象的空格**:单行声明的数组与对象,如果包含元素,`{}`和`[]`内紧贴括号部分不...
学习这个教程,你不仅会掌握React和Redux的基础知识,还会了解到如何组织代码以实现更好的状态管理。这将帮助你构建更大、更复杂的React应用,并理解如何使用Redux来管理状态,使应用保持清晰和可维护。此外,你还将...
needIncreament && (variable += increament); if (num > list.length) { } while (len--) { } ``` **[强制]** 单行声明的数组与对象,如果包含元素,`{}` 和 `[]` 内紧贴括号部分不允许包含空格。 - **示例*...