use command:<br/>
drop index index_name
mark528 發表在 痞客邦 留言(0) 人氣(122)
To add columns to an existing table using the command line, enter:<br/>
ALTER TABLE table_name ADD column_name data_type null_attribute<br/>
<br/>
EX:<br/>
ALTER TABLE MyTable<br/>
ADD COLUMN1 VARCHAR(5) NOT NULL WITH DEFAULT<br/>
ADD COLUMN2 CHAR(3)
mark528 發表在 痞客邦 留言(0) 人氣(149)
1. drop the existing primary key, use
ALTER TABLE Table_Name DROP PRIMARY KEY;
2. add new primary key, use
ALTER TABLE Table_Name ADD PRIMARY KEY (Column1, Column2, ...);
mark528 發表在 痞客邦 留言(0) 人氣(487)
要如何得知你使用的db2版本,每次問,不會被回說去找cd的包裝,就是問不到答案。
本想google一下,卻意外發現手動用command line的方式去連db,上面就有顯示了。
db2 => connect to yourdb
Database Connection Information
Database server = DB2/LINUX 9.7.6
SQL authorization ID = yourdb
Local database alias = yourdb
db2 =>
Database Server那行後面 9.7.6 就是db2 version
另也可以透過下面的SQL語法來取得db2 version,但是用此sql語法前,得先連上db,否則會出現錯誤。
db2 => select * from SYSIBM.SYSVERSIONS
VERSIONNUMBER VERSION_TIMESTAMP AUTHID VERSIONBUILDLEVEL
------------- -------------------------- -------- ------------------------------
9070600 2013-02-21-16.21.51.489830 DB2INST1 s120516
1 record(s) selected.
VERSIONNUMBER 即db2 version.
未連上db時,會得到的錯誤訊息
db2 => select * from SYSIBM.SYSVERSIONS
SQL1024N A database connection does not exist. SQLSTATE=08003
db2 =>
mark528 發表在 痞客邦 留言(0) 人氣(1,140)
How to get current date with format YYYYMMSS in DB2??
To get the current date, time, and timestamp using SQL in DB2, reference to use below sql statment
db2 => select current date from sysibm.sysdummy1
1
----------
08/29/2013
1 record(s) selected.
db2 => select current time from sysibm.sysdummy1
1
--------
16:59:01
1 record(s) selected.
db2 => select current timestamp from sysibm.sysdummy1
1
--------------------------
2013-08-29-16.37.35.960388
1 record(s) selected.
How to custom date/time formatting?
The easy way to do this is use VARCHAR_FORMATscalar function
db2 => select varchar_format(current timestamp, 'YYYYMMDD') from sysibm.sysdummy1
1
-----------------------------------
20130829
1 record(s) selected.
mark528 發表在 痞客邦 留言(0) 人氣(1,370)
全球最嚴個資法,台灣說第二,不知道有沒有其他國敢跳出來說第一,所以一堆公司開始了所謂的控管,免不的,資料庫有些敏感性資料也要加密,只好找找資料,試一下db2怎麼對表格中的欄位來進行加解密。
db2 針對不同型態,提供了不同的加解密函式,根據版本不同,有些函式還未提供,或是只供內部使用,所以只把我試出來可以用的列出來。
資料型態,主要針對varchar
使用下列函式:
mark528 發表在 痞客邦 留言(0) 人氣(336)
剛好遇上要用db2 sequence, 將試過的語法做個備忘。
1. create
CREATE SEQUENCE XX_SEQ START 1 INCREMENT BY 1 MAXVALUE 999999 CYCLE NO CACHE
說明:
START WITH:起始值
INCREMENT BY:每次增加多少
MAXVALUE:設定最大值,不設定就設成 NO MAXVALUE
CYCLE:當到達最大值時,是否從頭開始,不循環設成NO CYCLE
CACHE:一次產生多個值於記憶體中,方便快速取用,如 CACHE 3 ,就會產生3個值於記憶體中,若不使用,則設成NO CACHE
2. alter (重新設定起始值) ALTER SEQUENCE XX_SEQ RESTART WITH 10
3. 使用 next value for seq_name 取值
SELECT NEXT VALUE FOR XX_SEQ FROM sysibm.sysdummy1
4. drop(刪除)
DROP SEQUENCE XX_SEQ RESTRICT
mark528 發表在 痞客邦 留言(0) 人氣(247)
想要在命令視窗或命令列中執行 DB2 腳本,您可用 db2 -svtf ScriptName 來執行。
例如,script 為sample.sql
db2 -svtf sample.sql
參數說明︰
s 代表遇到錯誤時中止執行(如果您希望即使遇到錯誤也不要中止執行,請去掉此參數s
v 代表輸出結果到螢
t 指以;號作為每行的分隔符號
f 指後面需跟腳本檔案名
mark528 發表在 痞客邦 留言(0) 人氣(592)