實踐項目 從 mysql 到oracle的移植

一個項目實例:https://github.com/akeenhao/VBlog_Oracle

博客項目:賬戶管理、文章發表、權限管理、圖表生成等。數據庫原來是mysql,我改成Oracle。

1.sql語句方面

(0)建表:mysql:DROP TABLE IF EXISTS article ; oracle 會報錯,可以直接drop或create table。

(1) 主鍵生成策略:mysql 在主鍵列生成語句上加AUTO_INCREMENT;

????Oracle不支持,需要單獨處理:例如使用sequence或其他。

(1)特殊字符 `:mysql表名等都用``引起來,Oracle不需要,所以需要刪掉`。

(2)數據類型 int bigint 等。需要轉成number。例如: int(11)->number(11)

? ? ? ? 數據類型:varchar。需要轉成 varchar2

? ? ? ? 數據類型:text。需要轉成? clob

? ? ? ? 數據類型:datetime。需要轉成 TIMESTAMP(6)

(3)語法 index primary key等

(4)備注 comment:mysql的備注寫在每個字段的后面,

????????例如state number(11) DEFAULT NULL COMMENT '0表示草稿箱,1表示已發表,2表示已刪除',

? ? ? ? Oracle需要改成單獨的備注:comment on column TT_****.state? ?is '0表示草稿箱,1表示已發表,2表示已刪除';

(5)主鍵自增 auto increment

(6)唯一索引等

(7)主外鍵語句:

? ? ? ? 主鍵:

? ? ? ? mysql:在字段創建時加命令 PRIMARY KEY ( id ),

? ? ? ? oracle:alter table TM_A? add constraint PK_TE primary key (ID)

????????外鍵:

? ? ? ? mysql:CONSTRAINT article_ibfk_1 FOREIGN KEY ( cid ) REFERENCES category ( id )

? ? ? ? Oracle:alter table? table_** add constraint fk_g_id foreign key (ALA_ID)? references tm_aroup (ID);

(9) 特殊字符:user?uid 謹慎使用

(10)插入數據:& Oracle認為&size是變量,如果有字符串里含有&,則可以用‘fdasfd‘||’&‘||’fdsaf'來轉換。


2.程序方面

(1)主鍵生成策略? 用戶輸入、自動、uuid等

(2)使用mybatis xml文件修改 :遍歷的語法<foreach>要從代碼里進行,sql里不能活性使用。

(3)一個mybatismap里的sql,不能含有多個sql塊。

(4)主鍵自增實現,用trigger觸發器。


暫時這些。后續再有再補充。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容