я в настоящее время работает на моем PSQL свою первую базу Psql, созданную ниже:ОШИБКА: Не удалось создать уникальный индекс Psql
DROP TABLE IF EXISTS test_table_a;
DROP TABLE IF EXISTS test_table_b;
CREATE TABLE test_table_a (
test_name_a varchar (150) NOT NULL,
test_num_a integer NOT NULL
);
ALTER TABLE test_table_a OWNER TO me;
CREATE TABLE test_table_b (
test_name_b varchar (150) NOT NULL,
test_num_b integer NOT NULL
);
ALTER TABLE test_table_b OWNER TO me;
CREATE TABLE test_table_c (
test_name_a varchar (150) NOT NULL,
test_num_a integer NOT NULL,
test_num_b integer NOT NULL,
test_name_b varchar(150) NOT NULL,
);
ALTER TABLE test_table_c OWNER TO me;
Затем я загрузить его с данными ...:
echo COPY test_table_a FROM location_x
psql -c "COPY (
SELECT DISTINCT
test_num_a,
test_name_a,
FROM location_x
) TO STDOUT;" location_x | \
psql -c "COPY test_table_a FROM STDIN;" me
echo COPY test_table_b FROM location_x
psql -c "COPY (
SELECT DISTINCT
test_num_b,
test_name_b,
FROM location_x
) TO STDOUT;" location_x | \
psql -c "COPY test_table_b FROM STDIN;" me
echo COPY test_table_c FROM location_x
psql -c "COPY (
SELECT DISTINCT
test_num_a,
test_name_a,
test_num_b,
test_name_b
FROM location_x
) TO STDOUT;" location_x | \
psql -c "COPY test_table_c FROM STDIN;" me
А затем я пытаюсь добавить ключи, которые, когда я генерировать следующие ошибки:
ERROR: could not create unique index "pk_test_num_a" DETAIL: KEY (test_num_a) = (128) is duplicated. ERROR: could not create unique index "pk_test_num_b" DETAIL: KEY (test_num_b) = (110) is duplicated.
Когда я бегу:
ALTER TABLE divDemographic
ADD CONSTRAINT pk_test_num_b PRIMARY KEY (test_num_b);
ALTER TABLE schDemographic
ADD CONSTRAINT pk_test_num_a PRIMARY KEY (test_num_a);
ALTER TABLE test_table_c
ADD CONSTRAINT fk_test_num_a FOREIGN KEY (test_num_a) REFERENCES test_table_a(test_num_a),
ADD CONSTRAINT fk_test_num_b FOREIGN KEY (test_num_b) REFERENCES test_table_b(test_num_b);
Я думал, что с помощью «Дубликат» спецификатор в некоторых заявлениях бы предотвратить это, любые мысли о том, как исправить эту ошибку? благодаря
Это имеет смысл ... Я думаю, что test_num_a может иметь несколько test_num_b для каждого значения test_num_a ... плохо попробуйте это и вернитесь к вам. – sudobangbang