-Expense
-Search
This commit is contained in:
23
@knowleadge/dbchange/howtoalter table.txt
Normal file
23
@knowleadge/dbchange/howtoalter table.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user