Mysql 創建表之前判斷表是否存在,如果存在則刪除已有表
DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id int NOT NULL AUTO_INCREMENT COMMENT '編號', parent_id varchar(64) NOT NULL COMMENT '父級編號', parent_ids varchar(2000) NOT NULL COMMENT '所有父級編號', name varchar(100) NOT NULL COMMENT '名稱', sort decimal(10,0) NOT NULL COMMENT '排序', code varchar(100) COMMENT '區域編碼', type char(1) COMMENT '區域類型', create_by varchar(64) NOT NULL COMMENT '創建者', create_date datetime NOT NULL COMMENT '創建時間', update_by varchar(64) NOT NULL COMMENT '更新者', update_date datetime NOT NULL COMMENT '更新時間', remarks varchar(255) COMMENT '備注信息', del_flag char(1) DEFAULT '0' NOT NULL COMMENT '刪除標記', PRIMARY KEY (id) ) COMMENT = '區域表';
MySql 自增長 AUTO_INCREMENT
Oracle 創建表之前判斷表是否存在,如果存在則刪除已有表
declare
num number;
begin
select count(1) into num from user_tables where table_name = upper('sys_area') ;
if num > 0 then
execute immediate 'drop table sys_area' ;
end if;
end;
-- 區域表
CREATE TABLE sys_area
(
id Number(4) NOT NULL,
parent_id varchar2(64) NOT NULL,
parent_ids varchar2(2000) NOT NULL,
name nvarchar2(100) NOT NULL,
sort number(10,0) NOT NULL,
code varchar2(100),
type char(1),
create_by varchar2(64) NOT NULL,
create_date timestamp NOT NULL,
update_by varchar2(64) NOT NULL,
update_date timestamp NOT NULL,
remarks nvarchar2(255),
del_flag char(1) DEFAULT '0' NOT NULL,
PRIMARY KEY (id)
);
Oracle 定義主鍵 自增長,需要定義一個序列
create sequence seq_sys_area minvalue 1 --最小值 nomaxvalue --不設置最大值 start with 1 --從1開始計數 increment by 1 --每次加1個 nocycle --一直累加,不循環 nocache; --不建緩沖區
以上代碼完成了一個序列(sequence)的建立過程,名稱為SEQ_TEST,范圍是從1開始到無限大(無限大的程度是由你機器決定的),nocycle 是決定不循環,如果你設置了最大值那么你可以用cycle 會使seq到最大之后循環.對於nocache順便說一下如果你給出了cache值那么系統將自動讀取你的cache值大小個seq,這樣在反復操作時會加快運行速度,但如果遭遇意外情況如當機了或oracle死了,則下次取出的seq值將和上次的不連貫.(如果連不連貫無所謂建議用cache,因為時間就是金錢呀!)
seq_sys_area.nextval 作為主鍵插入值
