ALTER TABLE inspecoes
    ADD CONSTRAINT inspecoes_ck_uso_campos_inf CHECK ( ( ( tipo_inspecao_uso IN ( 1 )
                                                           AND produtor_id IS NOT NULL
                                                           AND carga_id IS NULL
                                                           AND carga_compartimento_id IS NULL
                                                           AND coleta_id IS NOT NULL )
                                                         OR ( tipo_inspecao_uso IN ( 2 )
                                                              AND produtor_id IS NOT NULL
                                                              AND carga_id IS NULL
                                                              AND carga_compartimento_id IS NULL
                                                              AND coleta_id IS NULL )
                                                         OR ( tipo_inspecao_uso IN ( 3 )
                                                              AND carga_id IS NOT NULL
                                                              AND produtor_id IS NULL
                                                              AND coleta_id IS NULL )
                                                         OR ( tipo_inspecao_uso IN ( 4 )
                                                              AND carga_id IS NULL
                                                              AND produtor_id IS NOT NULL
                                                              AND coleta_id IS NULL
                                                              AND carga_compartimento_id IS NULL ) ) );

ALTER TABLE inspecoes ADD CONSTRAINT inspecoes_pk PRIMARY KEY ( id );

ALTER TABLE inspecoes
    ADD CONSTRAINT inspecoes_uso_data_prod_col_carga UNIQUE ( tipo_inspecao_uso,
                                                              coleta_id,
                                                              carga_id,
                                                              carga_compartimento_id,
                                                              produtor_id,
                                                              data );