Rafael Barrios wrote:
Richard, thanks for your response.
here is te information you request:

Don't forget to cc: the mailing list.

CREATE TABLE tbarrio (
   bar_coddep character varying(2) NOT NULL,
   bar_codmun character varying(3) NOT NULL,
   bar_codbarrio character varying(3) NOT NULL,
   bar_barrio character varying(40) NOT NULL,
   bar_zongeografica character varying(1) NOT NULL
);

ALTER TABLE ONLY tbarrio
   ADD CONSTRAINT pk_tbarrio PRIMARY KEY (bar_coddep, bar_codmun, 
bar_codbarrio);

ALTER TABLE ONLY tbarrio
   ADD CONSTRAINT fk_tbarrio_tmunicipio FOREIGN KEY (bar_coddep, bar_codmun)
REFERENCES tmunicipio(mun_coddep, mun_codmun) ON UPDATE CASCADE;

failling Insert: (adds records to table 'barrio' observe empty values..)

INSERT INTO tbarrio VALUES ('05', '001', '', '', '');

These aren't null - they are empty strings. You haven't forbidden empty strings.

You'll want constraint(s) to do something like:

ALTER TABLE tbarrio
ADD CONSTRAINT no_empty_codbarrio
CHECK (bar_codbarrio > '');

http://www.postgresql.org/docs/8.0/static/sql-altertable.html

HTH
--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to