oracle
trigger
sequence
database
SQL
Oracle SQL Developer
2019 11 06
SQL Developer version: 19.1.0.094.2042
創表格 Table
CREATE TABLE TABLE 名稱 (
"ID" NUMBER(10, 0) NOT NULL ENABLE,
"DATA" VARCHAR2(22 BYTE) NOT NULL ENABLE,
"D_INSERTTIME" NOT NULL ENABLE,
) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "WMS_MAIN";
COMMENT ON COLUMN "WMS"."WMS_OrderStatusReturnLog"."ID" IS '流水號';
COMMENT ON COLUMN "WMS"."WMS_OrderStatusReturnLog"."DATA" IS '資料';
COMMENT ON COLUMN "WMS"."WMS_OrderStatusReturnLog"."D_INSERTTIME" IS '傳出時間';
COMMENT ON TABLE "WMS"."WMS_OrderStatusReturnLog" IS '排程執行結果紀錄明細';
建立NUMBER欄位時,可以指定該欄位的precision和scale如下
column_name NUMBER(precision, scale)
例如宣告一個欄位名稱為salary,資料型態為NUMBER,有效位數為10位數,小數後2兩位,則語法為…
salary NUMBER(10, 2)
如果沒給定precision,則會以儲存的值為準,如果沒給定scale,則預設為0
創序列 SEQUENCE
CREATE SEQUENCE SEQUENCE名稱
MINVALUE 1 -- 最小值,若不指定 或者 指定 NOMINVALUE,則最小值預設為 -10的26次方
MAXVALUE 999999999 -- 最大值,若不指定 或者 指定 NOMAXVALUE,則最大值預設為 10的27次方
INCREMENT BY 1 -- 流水號間隔,不指定的話預設為1
START WITH 1 -- 起始值
CACHE 20 -- 表示CACHE的數量,若不指定的話,預設為20,指定為NOCACHE表示不使用快取
NOORDER NOCYCLE -- 表示達最大值或最小值時不重頭開始,若指定CYCLE則會重頭計算
;
創觸發程式 將 Table 和 SEQUENCE 關連起來 (產生流水號)
CREATE OR REPLACE TRIGGER TRIGGER名稱 BEFORE
INSERT ON TABLE名稱 FOR EACH ROW
BEGIN
IF :new.ID IS NULL OR :new.ID = 0 THEN
SELECT
SEQUENCE名稱.NEXTVAL INTO :new.ID
FROM
DUAL;
END IF;
END;
全部完成後就可以去你新建的table,新增資料來看看ID欄位是否有按順序遞增
[time= 2019 11 07 ] 原文 & 參考: https://blog.miniasp.com/post/2019/01/02/Common-Regex-patterns-for-Unicode-characters https://unicode.org/charts/ UTF-8 相容於 ASCII 的文字範圍: 數字 (Numbers)[0-9]
Apr 8, 2020[time= 2019 11 08 ] 原文 & 參考: https://chentsulin.github.io/redux/docs/basics/UsageWithReact.html 使用 Mac 建置環境: 找一個你想建立此專案的位置 此範例目錄 ~/你的本機路徑/redux-base/
Apr 8, 2020[time= 2019 11 06 ] 原文 & 參考: https://www.bnext.com.tw/article/47401/chrome-screenshot 完整網頁長截圖 首先確保Chrome已升級至59或更高版本, 在想要截圖的網頁中,按下: Mac:
Apr 8, 2020or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up