"Александр Свириденков" ...
Есть пустая таблица

CREATE TABLE KLADR_ZIP (
   ZIP       INTEGER NOT NULL,
   KLADR_ID  BIGINT NOT NULL,
   HOUSES    VARCHAR(50)
);

ALTER TABLE KLADR_ZIP ADD CONSTRAINT PK_KLADR_ZIP PRIMARY KEY (ZIP,
KLADR_ID);

Хотим ее заполнить таким запросом:

insert into kladr_zip (zip, kladr_id)
select distinct trim(zip) zip, substring(kladr from 1 for 2)||
substring(kladr from 4 for 12) name from "DOMA.DBF"
union
select distinct zip, kladr_id name from kladr where zip is not null

И неожиданно получаем фигвам в виде

Invalid insert or update value(s): object columns are
constrained - no 2 table rows can have duplicate column values.
violation of PRIMARY or UNIQUE KEY constraint "PK_KLADR_ZIP" on table
"KLADR_ZIP".

Хотя вроде как оба запрос distinct и union между ними страхует от
повторяющихся записей.

   Как думаешь, '0001' и '1' - разные значения для INT ? А для CHAR ?

--
Хорсун Влад

Ответить