59 lines
2.2 KiB
Plaintext
59 lines
2.2 KiB
Plaintext
-- ⚠️ PostgreSQL ไม่รองรับคำสั่ง AFTER ในการเพิ่ม Column
|
|
-- จำเป็นต้องสร้างตารางใหม่เพื่อจัดเรียงลำดับ Column
|
|
|
|
BEGIN; -- เริ่ม Transaction (ถ้า Error ข้อมูลจะไม่เสียหาย)
|
|
|
|
-- 1. เปลี่ยนชื่อตารางเดิมเป็น Backup
|
|
ALTER TABLE dbo.prjmst RENAME TO prjmst_backup;
|
|
|
|
-- 2. สร้างตารางใหม่โดยมี prjdoc อยู่ในตำแหน่งที่ต้องการ
|
|
CREATE TABLE dbo.prjmst
|
|
(
|
|
prjseq integer NOT NULL,
|
|
prjnam character varying(150) COLLATE pg_catalog."default" NOT NULL,
|
|
prjusrseq integer,
|
|
prjwntbdg numeric(14,2),
|
|
prjacpbdg numeric(14,2),
|
|
prjbdgcod character varying(3) COLLATE pg_catalog."default",
|
|
prjcomstt character varying(3) COLLATE pg_catalog."default",
|
|
|
|
-- ✅ แทรก Column ใหม่ตรงนี้
|
|
prjdoc character varying(255) COLLATE pg_catalog."default",
|
|
|
|
prjacpdtm character(12) COLLATE pg_catalog."default",
|
|
|
|
CONSTRAINT prjmst_pkey PRIMARY KEY (prjseq, prjnam)
|
|
)
|
|
TABLESPACE pg_default;
|
|
|
|
-- 3. กำหนด Owner (ถ้าจำเป็น)
|
|
ALTER TABLE dbo.prjmst OWNER to postgres;
|
|
|
|
-- 4. ย้ายข้อมูลจากตาราง Backup มาใส่ตารางใหม่ (Map ข้อมูลให้ตรง Column)
|
|
INSERT INTO dbo.prjmst (
|
|
prjseq,
|
|
prjnam,
|
|
prjusrseq,
|
|
prjwntbdg,
|
|
prjacpbdg,
|
|
prjbdgcod,
|
|
prjcomstt,
|
|
prjacpdtm
|
|
-- prjdoc จะเป็น NULL อัตโนมัติสำหรับข้อมูลเก่า
|
|
)
|
|
SELECT
|
|
prjseq,
|
|
prjnam,
|
|
prjusrseq,
|
|
prjwntbdg,
|
|
prjacpbdg,
|
|
prjbdgcod,
|
|
prjcomstt,
|
|
prjacpdtm
|
|
FROM prjmst_backup;
|
|
|
|
-- 5. ยืนยันการทำงาน
|
|
COMMIT;
|
|
|
|
-- หมายเหตุ: หลังจากตรวจสอบข้อมูลแล้ว สามารถลบตาราง Backup ได้ด้วยคำสั่ง:
|
|
-- DROP TABLE dbo.prjmst_backup; |