Files
micro-service-api/@knowleadge/dbchange/howtoalter table.txt
x2Skyz 76d48f895f
Some checks failed
Build Docker Image / Build Docker Image (push) Successful in 3m43s
Build Docker Image / Restart Docker Compose (push) Has been cancelled
-Expense
-Search
2025-11-25 15:12:38 +07:00

23 lines
1.0 KiB
Plaintext

BEGIN;
-- 1. ย้ายตารางเก่าหลบไปก่อน (Backup ไว้ในตัว)
ALTER TABLE users RENAME TO users_old;
-- 2. สร้างตารางใหม่ (ด้วยโครงสร้างที่ต้องการแก้ไข)
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) NOT NULL,
-- ใส่ Column ใหม่ หรือแก้ไข Type ตรงนี้
new_column_data JSONB
);
-- 3. ย้ายข้อมูลจากตารางเก่ามาใส่ตารางใหม่
INSERT INTO users (id, username, new_column_data)
SELECT id, username, CAST(old_data AS JSONB) -- แปลงข้อมูลระหว่างทางได้เลย
FROM users_old;
-- 4. สร้าง Index และ Constraint ให้ครบ (สำคัญมาก!)
CREATE INDEX idx_users_username ON users(username);
-- อย่าลืม Add Foreign Key หรือ Grant Permission ให้ User อื่นด้วย
COMMIT;