玉祥平台客服-15087858732

标题: 数据库转换Mysql-Oracle之建表语句 [打印本页]

作者: fteair    时间: 2020-7-15 15:10
标题: 数据库转换Mysql-Oracle之建表语句
Mysql建库语句(导出的):
DROP TABLE IF EXISTS `tablename`;
CREATE TABLE `tablename` (  
`C_DI_CDE` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,  
/*Mysql添加注释方法:在创建字段后直接填写COMMENT '注释内容'*/
`C_PATER_CDE` varchar(40) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '  父代码',  
`C_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '  名称',  
`C_DESCRIBE` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '0' COMMENT '  描述',  
`C_STATE` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT '0' COMMENT '  状态',  
PRIMARY KEY (`C_DI_CDE`),  
/*MySQL中的KEY为键的含义和索引定义相同,是索引约束,即主键外键也是索引的一种,故Unique KEY表示唯一性索引*/
UNIQUE KEY `PK_WEB_BAS_DIC_DT` (`C_DI_CDE`) USING BTREE,  
KEY `IDX_WEB_BAS_DIC_DT_C_DICT_TYPE` (`C_DICT_TYPE`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='CLM_C_DICD_DATAS';
备注:表名和表字段上的符号不是单引号而是tab键上面的那个键的英文状态下的符号,加或不加都可以,在表字段名为关键字是需要加该符号防止与关键字冲突而建表失败。
Oracle建表语句:
CREATE TABLE WEB_TABLE (
C_TABLE_ID VARCHAR2(50 BYTE) DEFAULT ''  NOT NULL  PRIMARY KEY, /*创建主键方法之一*/
C_DPT_CDE VARCHAR2(30 BYTE) DEFAULT NULL  NULL ,
C_KIND_NO VARCHAR2(2 BYTE) DEFAULT NULL  NULL ,
C_PROD_NO VARCHAR2(10 BYTE) DEFAULT NULL  NULL  UNIQUE,    /*创建Unique约束方法之一*/
C_LEV_TYP VARCHAR2(2 BYTE) DEFAULT NULL  NULL ,
C_LEV_CDE VARCHAR2(5 BYTE) DEFAULT NULL  NULL ,
C_LEV_NME VARCHAR2(100 BYTE) DEFAULT NULL  NULL ,
C_FLG VARCHAR2(2 BYTE) DEFAULT NULL  NULL ,
CONSTRAINT PK_WEB_CLM_ADJUST PRIMARY KEY (C_TABLE_ID),       /*创建主键方法之二*/
CONSTRAINT PK_WEB_RISK_CLM_SEQ UNIQUE (C_DPT_CDE,C_PROD_NO)              /*创建Unique约束方法之二*/
) ;
/*Oracle添加注释方法:COMMENT ON  表名.字段名 IS '注释内容' */
COMMENT ON COLUMN WEB_TABLE.C_TABLE_ID IS '主键';
COMMENT ON COLUMN WEB_TABLE.C_DPT_CDE IS '机构编码';
COMMENT ON COLUMN WEB_TABLE.C_PROD_NO IS '产品编码';
COMMENT ON COLUMN WEB_TABLE.C_LEV_TYP IS '级别类型';
COMMENT ON COLUMN WEB_TABLE.C_LEV_CDE IS '级别编码';
COMMENT ON COLUMN WEB_TABLE.C_LEV_NME IS '级别名称';
COMMENT ON COLUMNWEB_TABLE.C_FLG IS '发送状态';
-- ---------------------------- -- Indexes structure for table WEB_CLM_AUTH -- ----------------------------
CREATE INDEX IYA_AUTH_LEV_TYP ON WEB_TABLE (C_LEV_TYP ASC) ;       /*创建普通索引*/
CREATE UNIQUE INDEX UIYA_AUTH_DPT_CDE ON WEB_TABLE (C_DPT_CDE ASC, C_PROD_NO ASC, C_LEV_TYP ASC, C_LEV_CDE ASC) ;               /*创建Unique索引*/
-- ---------------------------- -- Primary Key structure for table WEB_CLM_AUTH -- ----------------------------
/*该方法需要命名约束名称时可使用CONSTRAINT属性的写法来*/
ALTER TABLE WEB_TABLE ADD PRIMARY KEY (C_TABLE_ID);                      /*创建主键方法之三*/
ALTER TABLE WEB_TABLE ADD Unique (C_PROD_NO);                      /*创建唯一约束方法之三*/
补充说明:
1.一个表只能有一个primary key,可以有多个unique约束,Oracle中不容许在相同列上既创建主键又创建唯一性约束
2.Oracle中当创建primary key的时候,会同时建立一个索引,名字和primary key的名称相同.
3.当某属性为primary key,会默认新增not null约束,当删除primary key后,not null属性取消.
4.表的一个属性可以同时设定not null和primary key约束.


作者: fteair    时间: 2020-7-15 15:10

作者: caixuqad    时间: 2020-7-15 16:50

作者: 张兴康    时间: 2020-7-15 18:00

作者: fteair    时间: 2020-7-18 14:58
caixuqad 发表于 2017-9-15 16:50


作者: fteair    时间: 2020-7-18 15:00
张兴康 发表于 2017-9-15 18:00


作者: caixuqad    时间: 2020-7-18 17:54





欢迎光临 玉祥平台客服-15087858732 (http://bbs.delit.cn/) Powered by Discuz! X3.2