Wednesday, December 22, 2010

DB2CC define column default value

ใครใช้ DB2 Control Center (DB2CC) อยู่ก็คงพอจะรู้ว่ามันติ๊งต๊องในหลายๆเรื่องเหมือนกัน แต่วันนี้ขอพูดในมุมของการกำหนด default value ให้กับ column ตอนที่เรา create table ซึ่งถ้า column ที่เราจะกำหนด default value ให้มี data type เป็น CHARACTER, VARCHAR, INT หรืออื่นๆที่เป็นพวกเดียวกันก็คงไม่มีปัญหา แต่ปัญหามันเกิดตรงที่ถ้าเป็นรูปแบบของ DATE, TIMESTAMP, หรือ TIME แล้วเราอยากกำหนดค่า default value ให้เป็น current จะไม่สามารถทำได้ เนื่องจาก GUI บังคับให้ใส่ค่า default value แต่พอใส่เข้าไปแล้วก็ execute ไม่ผ่าน


วิธีแก้ก็คือสั่ง show sql แล้วเอามาลบส่วนที่เป็น default value เช่น

PROCESSING_DATE WITH DEFAULT 'CURRENT TIMESTAMP'

เป็น
PROCESSING_DATE WITH DEFAULT

แล้วเอาไปรันกับ db2ce ครับก็จะได้ current timestamp เป็นค่า default ของ column ที่เป็น date time แล้วครับ
สำหรับ tools ตัวอื่นเช่น Aqua Studio, Toad DB2 หรือ IBM Adminstration Tool หรือพวก Optim ยังไม่ได้ลองนะครับว่ามีปัญหาแบบนี้หรือไม่

No comments: