Las relaciones 'primary key' y 'foreign key' se pueden establecer a la vez que creas una tabla
CREATETABLEpedidos ( id SERIALPRIMARY KEY, fecha DATENOT NULL, producto_id INTNOT NULL, cantidad INTNOT NULL,FOREIGN KEY (producto_id) REFERENCES productos(id));
📝NOTA a diferencia de MySQL, en PostgreSQL no existe 'AUTOINCREMENT' en su lugar se utiliza el tipo de datos "SERIAL", es utilizado para crear una columna de tipo entero con una secuencia asociada que se incrementa automáticamente. La clave primaria se define como SERIAL PRIMARY KEY
Añadir
Si se desea agregar una nueva relación a una tabla que ya existe, se utiliza el comando ALTER TABLE, especificando la tabla que se va a modificar, seguido de ADD CONSTRAINT y la especificación de la clave foránea
Si se desea modificar una relación existente, se utiliza el comando ALTER TABLE, especificando la tabla que se va a modificar, seguido de DROP CONSTRAINT para eliminar la restricción existente y ADD CONSTRAINT para agregar una nueva restricción.
Eliminar
Si se desea eliminar una relación existente, se utiliza el comando ALTER TABLE, especificando la tabla que se va a modificar, seguido de DROP CONSTRAINT y el nombre de la restricción que se va a eliminar.
-- eliminar restriccion anterior
ALTER TABLE comentarios
DROP CONSTRAINT fk_comentarios_usuarios;
--añadir la nueva
ALTER TABLE comentarios
ADD CONSTRAINT fk_comentarios_usuarios_mod
FOREIGN KEY (id_usuario)
REFERENCES usuarios(id_usuario);
ALTER TABLE comentarios
DROP CONSTRAINT fk_comentarios_articulos;