千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > oracle为什么不提供CREATE TABLE IF NOT EXIST方式创建表?

oracle为什么不提供CREATE TABLE IF NOT EXIST方式创建表?

来源:千锋教育
发布人:xqq
时间: 2023-10-13 12:26:42 1697171202

一、oracle为什么不提供CREATE TABLE IF NOT EXIST方式创建表

因为系统设定语法就这样,后面只能先跟文件名,然后再跟条件。但写脚本时可以每次先drop ,再create。 写个块判断也行。使用了oracle的保留字size和rows,不能用来作为列名,把他改成别的吧,比如items_size,items_rows,不然以后调用也很麻烦。

mysql的CREATE TABLE IF NOT EXISTS 方法

DROP TABLE IF EXISTS ci_sessions;
CREATE TABLE IF NOT EXISTS ci_sessions (
   session_id VARCHAR(40) NOT NULL DEFAULT ‘0’,
   peopleid INT(11) NOT NULL,
   ip_address VARCHAR(16) NOT NULL DEFAULT ‘0’,
   user_agent VARCHAR(50) NOT NULL,
   last_activity INT(10) UNSIGNED NOT NULL DEFAULT ‘0’,
   LEFT INT(11) NOT NULL,
   name VARCHAR(25) NOT NULL,
   status TINYINT(4) NOT NULL DEFAULT ‘0’
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

延伸阅读:

二、MVCC多版本并发控制机制的实现

undo日志版本链是指一行数据被多个事务依次修改过后,在每个事务修改完后,Mysql会保留修改前的数据undo回滚日志,并且用两个隐藏字段trx_id和roll_pointer把这些undo日志串联起来形成一个历史记录版本链。

在可重复读隔离级别,当事务开启,执行任何查询sql时会生成当前事务的一致性视图read-view该视图在事务结束之前都不会变化(如果是读已提交隔离级别在每次执行查询sql时都会重新生成)该视图由执行查询时所有未提交事务id数组(数组里最小的id为min_id)和已创建的最大事务id(max_id)组成事务里任何sql的查询结果需要从对应版本链里的最新数据开始逐条跟read-view做比对从而得到最终的快照结果

1.如果 row 的 trx_id 落在绿色部分( trx_id

2. 如果 row 的 trx_id 落在红色部分( trx_id>max_id ),表示这个版本是由将来启动的事务生成的,是不可见的(若 row 的 trx_id 就是当前自己的事务是可见的);

3. 如果 row 的 trx_id 落在黄色部分(min_id <=trx_id<= max_id),那就包括两种情况:

若 row 的 trx_id 在视图数组中,表示这个版本是由还没提交的事务生成的,不可见(若 row 的 trx_id 就是当前自己的事务,是可见的);

若 row 的 trx_id 不在视图数组中,表示这个版本是已经提交了的事务生成的,可见。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT
如果同一条记录同时多个进程可能对不同的字段进行修改,怎么保证列锁?

一、如果同一条记录同时多个进程可能对不同的字段进行修改,怎么保证列锁没听说有列锁的机制,主流的方式就是行锁。我觉得你这种需求可以归到“...详情>>

2023-10-13 14:18:11
PC端网站,手机版网站,APP,三者可以实现共用同一数据库,能同步更新吗?

一、PC端网站,手机版网站,APP,三者可以实现共用同一数据库同步更新一般网站实现pc端与移动端适配的需求,方案有两个:1、一套页面,从设计时...详情>>

2023-10-13 14:10:53
怎么看待oracle的exadata与share nothing系列的hadoop等,以及优缺点相互对比、各自的前途对未来的影?

一、怎么看待oracle的exadata与share nothing系列的hadoop等exadata的架构我也仔细思考过很久,个人愚见,exadata引进了部分MPP思想,当并非MPP...详情>>

2023-10-13 13:58:16
MySQL数据库char类型的长度是什么意思?

一、MySQL数据库char类型的长度是什么意思MySQL数据库char类型的长度是指该字段所占用的字节数。char数据类型是MySQL中固定长度的字符类型。 我...详情>>

2023-10-13 13:51:32
“数据库”领域里面的“数据字典”到底是什么?

一、“数据库”领域里面的“数据字典”到底是什么数据字典是一个存放有数据库所用的有关信息,在数据库设计的初期将数据库中的各类数据的描述集...详情>>

2023-10-13 13:49:07
快速通道