數據庫轉換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約束.

 

關於CONSTRAINT

http://blog.csdn.net/lengyue_wy/article/details/6712258


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM