Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

139
Views
¿Cuál es la mejor manera de separar algunas columnas de una tabla existente en una nueva tabla manteniendo la relación?

Digamos que tengo una tabla Pago con las siguientes columnas

 payment_id - UUID amount - Numeric order_id - Unique VARCHAR psp_order_id - Third Party Unique Order Id created by Payment Service Provider psp_payment_id -Third Party Unique Payment Id created by Payment Service Provider created_at - payment created at ended_at - payment ended at

Ahora hay un requisito para integrar una nueva PSP. Pero dado que la tabla de pagos está estrechamente ligada a una PSP, me gustaría mover psp_order_id, psp_payment_id a otra tabla, por ejemplo: razorpay_payment_details.

Entonces el esquema resultante podría ser:

Tabla de pagos

 payment_id - UUID amount - Numeric order_id - Unique VARCHAR created_at - payment created at ended_at - payment ended at

razorpay_pago_detalles

 id - UUID (Primary Key) psp_order_id (Unique String) psp_payment_id (Unique String) payment_id (Foreign Key which relates Payment Entity to razorpay_payment_details entity)

¿Cómo se debe cambiar el esquema y migrar los datos de producción existentes a la nueva tabla?

Tecnologías utilizadas - Spring Boot, PostgreSQL PD: No administro migraciones de bases de datos usando Flyway/Liquibase.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Por lo general, crearía la nueva tabla ( razorpay_payment_details ) y luego copiaría las filas/columnas relevantes de la tabla original ( payment ) con una consulta de insert ... select .

 insert into razorpay_payment_details(psp_order_id, psp_payment_id, payment_id) select psp_order_id, psp_payment_id, payment_id from payment;

La columna de id debe ser una columna generada automáticamente (como una columna serial ), por lo que la dejé aparte en la consulta.

A continuación, puede continuar con la validación de los resultados. Finalmente, puede eliminar las columnas de la tabla original.

 alter table payment drop column psp_order_id, drop column psp_payment_id;
over 4 years ago · Santiago Trujillo Report

0

Tus pasos con la consulta serán así:

Cree su tabla razorpay_payment_details primero:

 create table razorpay_payment_details( id uuid DEFAULT uuid_generate_v4 (), psp_order_id varchar(100), psp_payment_id varchar(100), payment_id uuid, primary key(id), constraint fk_paymentid foreign key(payment_id) references payment(payment_id) )

Migre sus datos de la tabla de payment a la nueva tabla razorpay_payment_details utilizando la siguiente consulta:

 insert into razorpay_payment_details (psp_order_id, psp_payment_id, payment_id) select psp_order_id, psp_payment_id, payment_id from payment

Después de completar la migración y la verificación de los datos, puede ejecutar la siguiente consulta para modificar la tabla de payment :

 alter table payment drop column psp_order_id , drop column psp_payment_id;

No olvides hacer una copia de seguridad antes de esta actividad.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!