1. 程式人生 > >Oracle建立帶有自增序列的表和字串轉日期的問題

Oracle建立帶有自增序列的表和字串轉日期的問題

建立Oracle表的sql語句如下:

--建立tm_product
create table tm_product(
       pid number(8) primary key not null,
       productId number(20)  not null,
       productName varchar2(500) not null,
       price number(10) not null,
       upTime date not null,
       downTime date not null,
       remark varchar2(500)
 );
--說明
comment on table tm_product is '產品表';
comment on column tm_product.pid is '主鍵ID';
comment on column tm_product.productId is '產品ID';
comment on column tm_product.productName is '產品名稱';
comment on column tm_product.price is '低消金額(元)';
comment on column tm_product.upTime is '上架時間';
comment on column tm_product.downTime is '下架時間';
comment on column tm_product.remark is '說明';
--建立序列
create sequence seq_tm_product
minvalue 1
nomaxvalue
start with 1
increment by 1
nocycle   --一直累加,不迴圈
--nocache;  --不快取
cache 10; --快取10條
--建立觸發器,如果insert語句不指定ID自動插入增長值
CREATE OR REPLACE TRIGGER tr_tm_product
BEFORE INSERT ON tm_product FOR EACH ROW WHEN (new.pid is null)
begin
select seq_tm_product.nextval into:new.pid from dual;
end;

在這裡日期轉換是個問題,即在後代如何將字串變成日期格式呢,我在sql語句做文章:
INSERT INTO tm_product(productId, productName, price, upTime, downTime, remark) VALUES (?, ?, ?, to_date(?,'YYYY-MM-dd'), to_date(?,'YYYY-MM-dd'), ?)
不然在後臺很容易出現java.sql.Date和java.util.Date的衝突!

相關推薦

Oracle建立帶有序列字串日期的問題

建立Oracle表的sql語句如下: --建立tm_product create table tm_product( pid number(8) primary key not null

建立一張Oracle主鍵帶有預設值的資料

0 在建立表前修改一下系統預設時間格式 alter session set nls_date_format = 'yyyy-mm-dd'; 1 建立一個表 CREATE TABLE user_record( ID NUMBER(11) NOT NULL PRIMA

Hibernate + Oracle 建立序列ID

1.建立自增序列 2.對ID建立觸發器 3.Userinfo.hbm.xml使得<generator class="increment"> 序列: CREATE SEQUENCE "SYSTEM"."SEQUENCE_ID" MINVALUE 1 MAXVALUE 9999999

ORACLE 批量插入 主鍵為序列 有幾個欄位資料從其他匯入的 有幾個是固定的

ORACLE 批量插入   主鍵為自增序列   有幾個欄位資料從其他表匯入的 有幾個是固定的 insert into CUSTOMERPRODUCTCATEGORY----------目標表  (CUSTOMERPRODUCTCATEGORYID,ORIGINALID,WE

Oracle 建立序列

-- Create sequence create sequence ID_SEQUENCEminvalue 1maxvalue 9999999999999999999999999999start with 100001increment by 1cache 1000;ins

sql序列的新增,刪除,與修改

直接 src tar 綁定 後綁定 style com 屬性 新的 首先我們應該對Sequences,有個基本的概念: 主要是用來唯一標識,這樣方便查詢整條數據信息,主要的屬性有:自增量,最大值,最小值,初始值,所有者,自身名稱,關聯表名 1、重新設置序列開始的數字sql,

oracle如何實現?----用序列sequence的方法來實現

結果 自動增加 plus 地方 sequence www. 累加 www sysdate 將表t_user的字段ID設置為自增:(用序列sequence的方法來實現) ----創建表 Create table t_user( Id number(6),userid va

oracle數據庫,增加序列序列,規定位數,不足用0補足

class start pan art ext code acl str lec <select id="getXXXXXX" resultType="String"> select (‘Y‘||lpad(SEQ_WMSTART_CODE.ne

postgresql-建立主鍵

之前一直用的mysql,這個也基本上是主流,主鍵自增是很多建表規範中的硬性要求,不過這兩種資料庫主鍵自增的區別還是很大的 通常navicat中對mysql 主鍵自增直接客戶端指定即可,不過對PG貌似不支援客戶端指定,所以需要執行一下sql 如果尚未建立表,可用如下方法 方法一: create

Mybatis Plus 2 升到 Mybatis Plus 3 時,oracle 序列的相關問題

一、Mybatis Plus 2,oracle 自增序列配置 1. config.yml 配置檔案 #mybaits-plus配置,修改主鍵型別,mapper.xml、type 別名等 mybatis-plus: mapper-locations: classpath:/mapper/*Mapper.

PostgreSQL如何為主鍵建立序列(Sequences)

引言 在持久層框架如Hibernate(JPA)、Mybatis中經常會用到Sequences(函式)去建立主鍵值, PostgreSQL中,用serial資料型別的主鍵,資料庫會自動建立Sequences, 那麼我們自己設定的integer主鍵,如何設定

oracle主鍵 建立多個觸發器

問題: 最近修改專案的sql指令碼,新增幾張表,其中三個表需要屬性自增,mySql中可以直接用AUTO_INCREMENT,oracle沒有做自增功能,需要手動寫觸發器實現自增功能。在網上找到了解決方案。貼出來供大家參考: 解決方案:1.首先建立表 CREATE TABL

MySQL中生成唯一值性質的工具UUID()序列

同:都可以生成唯一值; 異: UUID()是可以生成時間、空間上都獨一無二的值;自增序列只能生成基於表內的唯一值,且需要搭配使其為唯一的主鍵或唯一索引;         實現方式不一樣,UUID()是隨機+規則組合而成的,而自增序列是控制一個值逐步增長的;     

MySQL UUID函式序列詳解

MySQL UUID函式的詳解 MySQL中可以有二類用於生成唯一值性質的工具:UUID()函式和自增序列,那麼二者有何區別呢?我們就此對比下各自的特性及異同點: l  都可以實現生成唯一值的功能; l  UUID是可以生成時間、空間上都獨一無二的值;自增序列只能

資料庫ID createDateupdateDate 用JPA註解代替觸發器實現

對於資料庫表的自增ID , createDate和updateDate 等欄位,用JPA註解代替觸發器實現,效率會高很多。 由於這些屬性很多entity都有 可以寫成兩個基本entity :BaseEntity和AbstractEntity 然後其他ent

【資料庫】postgresql資料庫建立序列id的注意事項

1.建立一張表 CREATE TABLE "public"."tt" ( "name" varchar(128), "status" int4 DEFAULT 2, "id" int8 NOT NULL, CONSTRAINT "tt_pkey" PRIMARY KEY ("

Oracle創建字段方法-ORACLE SEQUENCE的簡介

width star 這樣的 color trigge cache 序列號 pos arch 曾經最頭疼的就是對表插入數據的時候,有主鍵問題。由於主鍵不可以反復,所以得用函數自己定義一個規則生成不反復的值賦值給主鍵。 如今發現oracl

Java (++) C語言中的區別

%d 區別 但是 [] .cn cnblogs 微軟雅黑 自增 華麗 在Java、c語言等高級語言中自增和自減的作用基本一致,都是變量自身加一或減一。下面我只對自增進行說明,自減是類似的。 自增運算符(++),有兩種書寫形式,一個是在變量前: ++ num; 另一種

oracle創建字段方法

eat art new max clas style enc incr recv 1.創建表 create table test ( id NUMBER, messageid VARCHAR2(32) ); 2.創建序列 create s

oracle中實現id

acl pac primary 但是 數據庫 AR not select 簡單 在一些數據庫(例如mysql)中,實現自增id只要在建表的時候指定一下即可, 但是在oracle中要借助sequence來實現自增id, 要用上自增id,有幾種方式: 1.直接在inser