在oracle数据库中创建表语句如何写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle数据库中创建表语句如何写?相关的知识,希望对你有一定的参考价值。

表名:servicelogs
字段名称 类型
id int (主键,自增)
servicetype varchar (100)
outsys varchar (100)
methodname varchar (100)
methodresult varchar (200)
errormessage varchar (900)
inparameter varchar (900)
returncontent varchar (900)
logtime varchar (20)

参考技术A Oracle不能再建表语句中实现自增的,需要借助sequence才能实现,,设置主键只需要在字段后面加primary key关键字即可
create table servicelogs(
id number(8) primary key,
servicetype varchar(100),
outsys varchar(100),
methodname varchar(100),
methodresult varchar(200),
errormessage varchar(900),
inparameter varchar(900),
returncontent varchar(900),
logtime varchar(20)
);
创建序列号:
create sequence servicelogs_sequence
increment by 1 --步长,每次增加几
start with 1 --从几开始,这里是1
nomaxvalue --不设置最大值
nocycle --一直累加,不循环
nocache; --不建缓冲区

当然到此也可以结束,每次调用手动调用(序列名称.nextcal),但是这样比较麻烦,还是建立一个触发器
create or replace trigger servicelogs_trig before
insert on servicelogs for each row
begin
select servicelogs.nextval into new.id from dual;
end;

测试:
insert into servicelogs(servicetype)values('aaab');
select * from servicelogs;本回答被提问者和网友采纳

在Oracle 11g 中创建表时如何保存表?

【中文标题】在Oracle 11g 中创建表时如何保存表?【英文标题】:how to save a table when it is created in Oracle 11g? 【发布时间】:2017-02-15 06:49:31 【问题描述】:

我给出了 CREATE TABLE 的命令并将值插入到表中,但它没有保存。下次我登录时,表在那里,但插入的数据不在那里。 “没有选定的行”是屏幕上显示的语句。 请帮助保存 ORACLE 11g 中的更改。

【问题讨论】:

你可能忘了commit你的插入 必读docs.oracle.com/cd/B19306_01/server.102/b14200/… 【参考方案1】:

解决方案

首先将您的 Oracle 数据库客户端应用程序设置为在终止之前始终隐式地提交回滚事务(行为 recommended 由 Oracle)。然后了解数据库 transactions 并将您的 Oracle 数据库客户端应用程序设置为 自动提交模式 或显式提交您的 D.M.L.事务(使用COMMIT 语句),因为您不应依赖客户端应用程序的提交行为。

数据库事务总结

数据库事务是数据库管理系统的一个基本概念。交易的基本属性是它的原子性:交易要么是

已提交(数据库更改全部永久化,即存储在磁盘上);或 回滚(数据库更改全部丢弃)。

从词汇上讲,一笔交易由一个或多个 S.Q.L 组成。这类陈述:

数据定义语言 (D.D.L.) 语句(CREATEDROPALTERGRANTREVOKE,...)数据库; 数据操作语言 (D.M.L.) 语句(INSERTDELETEUPDATESELECT,...)检索或更改数据库的内容

数据库客户端应用程序可以在两种不同的模式下运行:

自动提交模式,隐式事务在 D.D.L 之前隐式启动。和 D.M.L.声明并在 D.D.L. 之后隐式承诺成功并回滚失败。和 D.M.L.语句,显式事务在BEGIN 语句显式启动,在COMMIT 语句显式提交并在ROLLBACK 语句回滚; 非自动提交模式,混合事务在 D.D.L 之前隐式启动。或 D.M.L.语句并在 COMMIT 语句处显式提交并在 ROLLBACK 语句处回滚。

在这两种模式下,事务在数据库客户端应用程序正常终止之前隐式提交,在数据库客户端异常终止之前隐式回滚。对于不支持回滚 D.D.L 的数据库管理系统。语句(Maria D.B.、Oracle 数据库、S.Q.L. Server),事务也在 D.D.L. 之后隐式提交。声明。

说明

当您发布 CREATE 声明时,因为它是 D.D.L.语句和 Oracle 数据库不支持回滚 D.D.L。语句,创建表的事务被隐式提交。这就是为什么在您开始新会话后表格结构仍然存在的原因。但是当您发布INSERT 声明时,因为它是 D.M.L.语句并且您未处于自动提交模式,则填充表的事务隐式提交。由于您的 Oracle 数据库客户端应用程序未设置为在终止前隐式提交事务,这就是您启动新会话后表内容消失的原因。

【讨论】:

以上是关于在oracle数据库中创建表语句如何写?的主要内容,如果未能解决你的问题,请参考以下文章

在oracle中创建表,如何写sql语句才能保证表不重复创建,也就是说,如何让他不提示表或视图已存在

如何在oracle10G中创建表空间

在Oracle 11g 中创建表时如何保存表?

oracle中创建表的sql语句如何添加default约束

在Oracle数据库中创建一个表,用两个键做联合主键,sql语句该怎么写?

Oracle 10g中如何创建表