数据库 字段自增
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的⽤法详解引:⽤于操作数据库的SQL⼀般分为两种,⼀种是查询语句,也就是我们所说的SELECT语句,另外⼀种就是更新语句,也叫做数据操作语句。
⾔外之意,就是对数据进⾏修改。
在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。
⽤于操作数据库的SQL⼀般分为两种,⼀种是查询语句,也就是我们所说的SELECT语句,另外⼀种就是更新语句,也叫做数据操作语句。
⾔外之意,就是对数据进⾏修改。
在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。
在MySQL中⼜多了⼀个REPLACE语句,因此,本⽂以MySQL为背景来讨论如何使有SQL中的更新语句。
INSERT和REPLACE语句的功能都是向表中插⼊新的数据。
这两条语句的语法类似。
它们的主要区别是如何处理重复的数据。
MySQL中的INSERT语句和标准的INSERT不太⼀样,在标准的SQL语句中,⼀次插⼊⼀条记录的INSERT语句只有⼀种形式。
INSERT INTO tablename(列名…) VALUES(列值);⽽在MySQL中还有另外⼀种形式。
INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;第⼀种⽅法将列名和列值分开了,在使⽤时,列名必须和列值的数⼀致。
如下⾯的语句向users表中插⼊了⼀条记录:INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);第⼆种⽅法允许列名和列值成对出现和使⽤,如下⾯的语句将产⽣中样的效果。
INSERT INTO users SET id = 123, name = '姚明', age = 25;如果使⽤了SET⽅式,必须⾄少为⼀列赋值。
SQLSERVER查看数据库表的字段类型,是否允许为NULL,默认值,主键等

SQLSERVER查看数据库表的字段类型,是否允许为NULL,默认值,主键等declare@table_name varchar(100)-- 表名set@table_name='bqcform101'--============表结构select类别,表名or字段名,描述,字段类型,是否⾃增,允许为NULL,默认值from(SELECT'表名'类别,-1 column_id, 表名or字段名,ds.value 描述,''字段类型,''是否⾃增,''允许为NULL,''默认值,1 rnFROM sys.extended_properties dsLEFT JOIN sysobjects tbs ON ds.major_id=tbs.idWHERE ds.minor_id=0and =@table_nameunionSELECT@table_name类别,c.column_id, 表名or字段名,s.value 描述,字段类型= +CASE er_type_id WHEN41THEN'('+CAST(C.scale AS VARCHAR) +')'-- timeWHEN42THEN'('+CAST(C.scale AS VARCHAR) +')'-- datetime2WHEN43THEN'('+CAST(C.scale AS VARCHAR) +')'-- datetimeoffsetWHEN106THEN'('+CAST(C.precision AS VARCHAR)+','+CAST(C.scale AS VARCHAR) +')'-- decimalWHEN108THEN'('+CAST(C.precision AS VARCHAR)+','+CAST(C.scale AS VARCHAR) +')'-- numericWHEN165THEN'('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')'-- varbinaryWHEN167THEN'('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')'-- varcharWHEN173THEN'('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')'-- binaryWHEN175THEN'('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')'-- charWHEN231THEN'('+ISNULL(CAST(NULLIF(C.max_length,-1)/2AS VARCHAR),'MAX') +')'-- nvarchar(该字段校检根据实际情况)WHEN239THEN'('+ISNULL(CAST(NULLIF(C.max_length,-1) AS VARCHAR),'MAX') +')'-- ncharELSE''END,case when C.is_identity=1then'是'else''end是否⾃增--cast(C.is_identity as varchar(10)) 是否⾃增,case when C.is_nullable=1then'是'else''end允许为NULL,默认值=ISNULL(STUFF(LEFT(D.definition,LEN(D.definition)-1),1,1,''),''),3 rnFROM sys.columns CINNER JOIN sys.types T ON er_type_id = er_type_idLEFT JOIN sys.default_constraints D ON D.[object_id]=C.default_object_id AND D.parent_object_id = C.[object_id]AND D.parent_column_id = C.column_id left join (select major_id,minor_id,value from sys.extended_properties) s on s.major_id = c.object_id and s.minor_id = c.column_idWHERE C.[object_id]=OBJECT_ID(@table_name)) sorder by column_id,rn--============主键select Primary_COLUMN_NAME =convert(sysname,)fromsysindexes i, syscolumns c, sysobjects owhere o.id =object_id(@table_name)and o.id = c.idand o.id = i.idand (i.status &0x800) =0x800and ( =index_col (@table_name, i.indid, 1) or =index_col (@table_name, i.indid, 2) or =index_col (@table_name, i.indid, 3) or =index_col (@table_name, i.indid, 4) or =index_col (@table_name, i.indid, 5) or =index_col (@table_name, i.indid, 6) or =index_col (@table_name, i.indid, 7) or =index_col (@table_name, i.indid, 8) or =index_col (@table_name, i.indid, 9) or =index_col (@table_name, i.indid, 10) or =index_col (@table_name, i.indid, 11) or =index_col (@table_name, i.indid, 12) or =index_col (@table_name, i.indid, 13) or =index_col (@table_name, i.indid, 14) or =index_col (@table_name, i.indid, 15) or =index_col (@table_name, i.indid, 16))。
id生成方案

id生成方案简介:在计算机系统中,ID(标识符)是用于唯一标识某个实体的一组字符或数字。
ID生成方案是用于生成唯一ID的一种方法或算法。
在本文中,我们将讨论几种常见的ID生成方案,并分析它们的特点。
一、自增ID自增ID是最简单的ID生成方案之一,它通过不断增加一个固定的值来生成唯一ID。
通常,这个固定值是一个整数,每生成一个ID,这个整数就会自增。
自增ID的特点是简单快速,而且生成的ID递增有序。
然而,自增ID也存在一些问题,比如在分布式系统中可能会出现冲突问题,而且无法满足随机性的需求。
二、时间戳ID时间戳ID是基于时间戳生成的唯一ID。
它通常使用当前时间戳加上一个固定字符串作为ID的生成依据。
时间戳ID的特点是精确到毫秒级别,并且生成的ID具有唯一性和递增的特点。
然而,时间戳ID 也存在一些问题,比如在高并发场景下可能会出现冲突问题,而且无法满足需要保密性的需求。
三、UUIDUUID(通用唯一标识符)是由128位数字组成的标识符,它几乎可以保证在全球范围内的唯一性。
UUID生成算法基于时间戳、计算机的MAC地址等信息,以及随机数。
UUID的特点是生成的ID几乎可以保证唯一性,且不受分布式系统的限制。
然而,UUID也存在一些问题,比如生成的ID较长,不易读取,而且在数据库索引等方面可能会存在性能问题。
四、雪花算法雪花算法是Twitter开源的一种分布式ID生成算法。
它将生成的64位ID分为不同的部分,包括时间戳、数据中心ID、机器ID以及序列号等。
雪花算法的特点是在保证唯一性的同时,生成的ID是有序且趋势递增的。
另外,雪花算法还具备一定的抗并发能力,可以在高并发场景下使用。
然而,雪花算法也存在一些问题,比如对于机器ID的分配和数据中心ID的配置需要进行一些管理。
五、数据库自增ID数据库自增ID是在关系型数据库中常用的一种ID生成方案。
它通过定义一个自增列(如MySQL的AUTO_INCREMENT)来生成唯一ID。
bigserial字段类型

bigserial字段类型在数据库类型中,BigSerial是一种表示带有自动递增值的长整型数据类型。
它是PostgreSQL数据库中的一种特殊数据类型,用于表示自动生成的、不可重复的大整数值。
BigSerial类型允许我们在插入数据时自动地生成唯一的递增值,而不需要手动指定。
BigSerial类型在PostgreSQL中与Serial类型非常相似,不同之处在于它的数据范围更大。
Serial类型可以存储的范围是1到2^31-1(约为21亿),而BigSerial类型可以存储的范围是1到2^63-1(约为922亿亿)。
因此,如果我们需要存储更大范围的自动生成递增值时,就可以选择使用BigSerial类型。
BigSerial类型的主要用途是在数据库表中创建一个自增的主键列。
这样的一个列可以确保每个插入的记录都具有唯一的标识符,同时也方便我们在查询和连接表时使用。
在使用BigSerial类型定义表时,我们可以使用多种方式指定主键列的类型。
一种常见的方式是在表的创建过程中使用"bigserial"关键字:CREATE TABLE example (id bigserial PRIMARY KEY,name text);在上述的例子中,"id"列被定义为BigSerial类型,它将作为主键在表中唯一地标识每个记录。
在使用BigSerial类型的表中插入数据时,我们可以忽略主键列的值,因为它会自动地生成一个唯一的递增值。
例如:INSERT INTO example (name) VALUES ('John');在上述的例子中,"id"列将根据之前插入的记录数自动生成一个递增的值。
在查询BigSerial类型的表时,我们可以使用"ORDER BY"子句根据主键列对结果进行排序,以确保结果具有一定的顺序。
例如:SELECT * FROM example ORDER BY id;在上述例子中,查询将根据"id"列对结果进行排序,以便按照插入顺序显示记录。
MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解本篇文章是对MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下MySQL数据库insert和update语句引:用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。
言外之意,就是对数据进行修改。
在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。
用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。
言外之意,就是对数据进行修改。
在标准的SQL中有3个语句,它们是INSERT、UPDATE以及DELETE。
在MySQL中又多了一个REPLACE 语句,因此,本文以MySQL为背景来讨论如何使有SQL中的更新语句。
一、INSERT和REPLACEINSERT和REPLACE语句的功能都是向表中插入新的数据。
这两条语句的语法类似。
它们的主要区别是如何处理重复的数据。
1. INSERT的一般用法MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。
INSERT INTO tablename(列名…) VALUES(列值);而在MySQL中还有另外一种形式。
INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。
如下面的语句向users表中插入了一条记录:INSERT INTO users(id, name, age) VALUES(123, '姚明', 25);第二种方法允许列名和列值成对出现和使用,如下面的语句将产生中样的效果。
Mybatis+Mysql插入数据库返回自增主键id值的三种方法

Mybatis+Mysql插⼊数据库返回⾃增主键id值的三种⽅法⼀、场景:插⼊数据库的值需要⽴即得到返回的主键id进⾏下⼀步程序操作⼆、解决⽅法:第⼀种:使⽤通⽤mapper的插⼊⽅法Mapper.insertSelective(record);此⽅法:插⼊⼀条数据,只插⼊不为null的字段,不会影响有默认值的字段⽀持Oracle序列,UUID,类似Mysql的INDENTITY⾃动增长(⾃动回写)优先使⽤传⼊的参数值,参数值空时,才会使⽤序列、UUID,⾃动增长controller的实际应⽤:使⽤⽅法id会直接将映射到参数的实体上使⽤时直接使⽤参数的实体get获取值第⼆种:编写sql语句dao层⽅法:[java]1. /**2. * 插⼊数据库并返回主键id3. * @param batch4. * @return5. */6. Integer insertBatchReturnId(Batch batch);xml的sql语句写法记得加上useGeneratedKeys和keyProperty配置即可,前者是指设置是否使⽤jdbc的getGenereatedKeys⽅法获取主键并赋值到keyProperty 设置的属性中,后者即实体类主键字段(并且⼤⼩写要对应上)[html]1. <insert id="insertBatchReturnId" useGeneratedKeys="true" keyProperty="id" parameterType="org.uz.dxt.model.bankbase.Batch" >2.3. insert into t_batch (4. batchCode,5. bankCode,6. bizType,7. companyCode,8. wtEndDate,9. wtDate,10. contractId,11. totalCount,12. totalBase,13. handCode)14. values15. ( #{batchcode},16. #{bankcode},17. #{biztype},18. #{companycode},19. #{wtenddate},20. #{wtdate},21. #{contractid},22. #{totalcount},23. #{totalbase},24. #{handCode})25. </insert>controller的实际应⽤:使⽤⽅法id会直接将映射到参数的实体上使⽤时直接使⽤参数的实体get获取值[java]1. batchService.insertBatch(param);//实体2. idlist.add(param.getId());第三种:sql语句使⽤<selectKey>获取⾃增逐渐id[html]1. <insert id="add" parameterType="EStudent">2. // 下⾯是SQLServer获取最近⼀次插⼊记录的主键值的⽅式3. <selectKey resultType="_long" keyProperty="id" order="AFTER">4. select @@IDENTITY as id5. </selectKey>6. insert into TStudent(name, age) values(#{name}, #{age})7. </insert>使⽤⽤法同上这⾥推荐使⽤第⼀种和第⼆种中⽅法第三种⽅法对oracl额外的配置controller的实际应⽤:使⽤⽅法id会直接将映射到参数的实体上使⽤时直接使⽤参数的实体get获取值。
MySQL数据库基本操作
删除表:
drop table if exists 数据表名 ;
rename as new_tbl_name
更改表名
Tips:
1) 要把表中的数据全部删除才能使用 alter 语句修改表列。 2) 用 modify···语句修改字段属性,与其说是修改不如说是重定义属性,原先属性不
插入数据: 使用 insert···value 语句插入数据:
属性 create_definition 语句的具体参数
参数
说明
col_name
字段名(列名)
type
字段类型(数据类型)
not null | null
指出该列是否允许为空值,系统默认一般允许为空 值,当不允许为空值的时候必须使用 not null
删除数据库:
drop database if exists 数据库名 ; Tips:
通过 delete 语句删除数据
value ( 值|default,··· ),(···),···:必选项,用于指定需要插入的 数据清单,其顺序和数据类型必须与字段的顺序和数据类型相匹配;
使用 insert···set 语句插入数据: insert low_priority | delayed | high_priority ignore into 数据表名 set 字段 1 = 值|default ,字段 2=值|default,··· on duplicate key update 字段名=表达名,··· ;
Tips:
1) 创建的数据库不能与它数据库重名; 2) 名称可用任意字母、阿拉伯数字、下划线和$组成,但不能使用单独的数字; 3) 名称最长为个字符,别名最长为 256 个字符; 4) 不能用 MySQL 关键字作为数据库名、表名; 5) 因为 MySQL 在 Windows 系统中对于库/表名大小写不敏感,而在 Linux 系统下
数据库生成顺序序号
数据库生成顺序序号
1. 自增主键,在创建表时,可以指定一个自增的整数类型字段
作为主键,数据库会自动为新插入的记录分配一个唯一的递增序号。
这种方式通常使用AUTO_INCREMENT关键字(MySQL)或者IDENTITY
关键字(SQL Server)来实现。
2. 序列(Sequence),某些数据库管理系统(如Oracle、PostgreSQL等)提供了序列对象,可以通过定义序列并将其与表关联,从而实现为表中的某个字段生成唯一的顺序序号。
3. 视图(View),在数据库中可以创建一个视图,通过视图的
方式来生成顺序序号。
这通常涉及使用ROW_NUMBER()函数或者其他
窗口函数来为记录分配序号。
4. UUID(Universally Unique Identifier),使用UUID作为
唯一标识符,UUID是一种128位的唯一标识符,可以保证全球范围
内的唯一性。
可以在数据库中使用UUID作为记录的唯一标识符,而
不依赖于自增序号。
5. 应用程序生成,有时候也可以在应用程序中生成唯一的序号,
并将其插入到数据库中作为记录的标识符。
这种方式可以通过一些算法来生成唯一的序号,比如使用时间戳和随机数的组合。
总的来说,数据库生成顺序序号的方式有多种多样,选择合适的方式取决于具体的数据库管理系统和应用需求。
在实际应用中需要根据具体情况来选择最合适的方式来生成顺序序号,以确保数据的完整性和唯一性。
sql中的名词解释
sql中的名词解释SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化语言。
它提供了一套清晰简洁的操作语法,用于创建、查询、修改和删除数据库中的数据和结构。
数据库(Database)数据库是一种组织和存储数据的系统。
它是一个可以持久保存数据的仓库,为用户提供了数据的集中管理和访问接口。
数据库通常由多个表格组成,每个表格包含了一定结构的数据。
SQL语言可以用来操作这些数据库,并执行各种数据操作。
表格(Table)表格是数据库中最基本的组成部分。
它由行和列组成,分别代表数据的记录和字段。
每一行表示一个数据记录,每一列包含了相同类型的数据。
表格的结构是通过定义字段的名称和数据类型来确定的。
表格可以用来存储不同实体之间的关系,并提供了数据的结构化存储和查询能力。
字段(Column)字段是表格中的一列,用于存储特定类型的数据。
每个字段都有一个字段名和一个对应的数据类型。
字段名用于标识字段的含义,而数据类型用于规定字段可以存储的数据的种类和范围。
常见的数据类型有整数、浮点数、字符、日期等。
字段可以定义为必填、唯一、自增等属性,以增强数据的完整性和可靠性。
记录(Record)记录是表格中的一行,它代表了一组数据的完整实例。
记录是由字段的值组成的,每个字段的值与其定义的数据类型相匹配。
每个记录都有一个唯一的标识符,通常称为主键。
主键用于唯一地标识记录,以便进行数据操作和关联。
主键(Primary Key)主键是一种特殊的字段,用于唯一标识表格中的每个记录。
主键的值在表格中必须是唯一且不能为空。
主键可以是单个字段,也可以是多个字段的组合。
主键在数据库中起着重要的作用,它可以用于快速检索和定位记录,并建立数据之间的关系。
外键(Foreign Key)外键是一个字段或一组字段,用于建立表格之间的关系。
外键在一个表格中指向另一个表格的主键,用于确保数据之间的完整性和一致性。
thinkphp的sql的 inc的用法 -回复
thinkphp的sql的inc的用法-回复ThinkPHP是一个开源的PHP开发框架,它提供了一套优雅、高效、灵活的开发方式,方便开发者快速构建功能丰富的Web应用程序。
其中的SQL 库提供了丰富的数据库操作方法,使得开发者可以通过简单的代码实现各种复杂的数据库操作。
在SQL库中,inc方法是一个非常重要的方法,它可以用来实现数据表字段的自增或自减操作。
本文将详细介绍ThinkPHP 中inc方法的使用。
首先,我们需要了解inc方法的基本语法。
inc方法的用法如下:phppublic function inc(field, step = 1)inc方法主要有两个参数,分别是field和step。
field表示需要进行自增或自减操作的字段名,step表示自增或自减的步长,默认为1。
接下来,我们将通过一个示例来演示inc方法的使用。
假设我们有一个名为"user"的数据表,其中包含以下字段:id、name和age。
我们希望实现对"age"字段进行自增操作。
首先,我们需要创建一个UserModel类,并继承ThinkPHP的Model类。
phpnamespace app\model;use think\Model;class UserModel extends Model{protected table = 'user'; 数据表名}在UserModel类中,我们定义了数据表的名称为"user",接下来我们就可以使用inc方法进行自增操作了。
在我们的业务逻辑代码中,可以通过以下方式来使用inc方法:phpnamespace app\controller;use app\model\UserModel;class UserController{public function incAge(id){user = UserModel::find(id); 根据id获取用户数据if (user) {user->inc('age')->save(); 对age字段进行自增操作return '自增成功';} else {return '用户不存在';}}}在上述示例代码中,我们首先通过id从数据表中获取到对应的用户数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
平常心
AUTO INCREMENT 字段
我们通常希望在每次插入新记录时,自动地创建主键字段的值。
我们可以在表中创建一个 auto-increment 字段。
用于 MySQL 的语法
下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:
CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
MySQL 使用 AUTO_INCREMENT 关键字来执行 auto-increment 任务。
默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
要让 AUTO_INCREMENT 序列以其他的值起始,请使用下列 SQL 语法:
ALTER TABLE Persons AUTO_INCREMENT=100
要在 "Persons" 表中插入新记录,我们不必为 "P_Id" 列规定值(会自动添加一个唯一的值):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')
上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 会被赋予一个唯一的值。"FirstName"
会被设置为 "Bill","LastName" 列会被设置为 "Gates"。
用于 SQL Server 的语法
下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:
CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
平常心
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS SQL 使用 IDENTITY 关键字来执行 auto-increment 任务。
默认地,IDENTITY 的开始值是 1,每条新记录递增 1。
要规定 "P_Id" 列以 20 起始且递增 10,请把 identity 改为 IDENTITY(20,10)
要在 "Persons" 表中插入新记录,我们不必为 "P_Id" 列规定值(会自动添加一个唯一的值):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')
上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 会被赋予一个唯一的值。"FirstName"
会被设置为 "Bill","LastName" 列会被设置为 "Gates"。
用于 Access 的语法
下列 SQL 语句把 "Persons" 表中的 "P_Id" 列定义为 auto-increment 主键:
CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MS Access 使用 AUTOINCREMENT 关键字来执行 auto-increment 任务。
默认地,AUTOINCREMENT 的开始值是 1,每条新记录递增 1。
要规定 "P_Id" 列以 20 起始且递增 10,请把 autoincrement 改为 AUTOINCREMENT(20,10)
要在 "Persons" 表中插入新记录,我们不必为 "P_Id" 列规定值(会自动添加一个唯一的值):
INSERT INTO Persons (FirstName,LastName)
平常心
VALUES ('Bill','Gates')
上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 会被赋予一个唯一的值。"FirstName"
会被设置为 "Bill","LastName" 列会被设置为 "Gates"。
用于 Oracle 的语法
在 Oracle 中,代码稍微复杂一点。
您必须通过 sequence 对创建 auto-increment 字段(该对象生成数字序列)。
请使用下面的 CREATE SEQUENCE 语法:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10
上面的代码创建名为 seq_person 的序列对象,它以 1 起始且以 1 递增。该对象缓存 10 个值以提高
性能。CACHE 选项规定了为了提高访问速度要存储多少个序列值。
要在 "Persons" 表中插入新记录,我们必须使用 nextval 函数(该函数从 seq_person 序列中取回下
一个值):
INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
上面的 SQL 语句会在 "Persons" 表中插入一条新记录。"P_Id" 的赋值是来自 seq_person 序列的下
一个数字。"FirstName" 会被设置为 "Bill","LastName" 列会被设置为 "Gates"。