2013-03-04 2 views
0

Я использую базу данных PGAdminIII.создание таблицы с внешним ключом, который ссылается на другую таблицу

Я одну таблицу с именем STOCKREGISTER, которая содержит составной первичный ключ, состоящий из трех полей т.е. stockregisterId, ApplicationID и дата.

Я должен создать еще одну таблицу ШТОК, который имеет ForeignKey поле, которые ссылаются на поле stockregisterId из STOCKREGISTER .Если я пытаюсь создать STOCK таблицу, сообщение об ошибке shown.The сообщение об ошибке является «нет уникального contraint соответствующего ключей для указанной таблицы STOCKREGISTER» .Что еще один шага я должен принять следующим

это первая таблица

CREATE TABLE stock_register 
(
    stock_register_id bigint NOT NULL, 
    application_id bigserial NOT NULL, 
    production_date date NOT NULL, 
    opening_bal bigint DEFAULT 0, 
    quantity_produced bigint, 
    total_quantity bigint 
    CONSTRAINT primarykey PRIMARY KEY (stock_register_id, application_id, production_date), 
    CONSTRAINT "foreignKey" FOREIGN KEY (application_id) 
     REFERENCES application (application_id) MATCH SIMPLE 
     ON UPDATE NO ACTION ON DELETE NO ACTION 
) 

ниже второго table.Here я не могу сделать stock_register_id в качестве внешнего ключа

CREATE TABLE Stock 
(
    stock_id bigint NOT NULL, 
    stock_register_id bigint, 
    dimension bigserial NOT NULL, 
    CONSTRAINT "stockid" PRIMARY KEY (stock_id) 
) 
+0

Пожалуйста, поделитесь своими схемами и кодом, которые вы пробовали – DevelopmentIsMyPassion

+0

Какая версия Sql server это? – DevelopmentIsMyPassion

ответ

0

Я предполагаю, что синтаксис должен быть:

CREATE TABLE Stock 
(
    stock_id bigint NOT NULL, 
    stock_register_id bigint, 
    dimension bigserial NOT NULL, 
    CONSTRAINT "stockid" 
    FOREIGN KEY (stock_id) 
    REFERENCES stock_register (stock_register_id) 
) 
0
CREATE TABLE Stock 
(
stock_id bigint NOT NULL, 
stock_register_id bigint, 
dimension bigserial NOT NULL, 
CONSTRAINT primaryKey PRIMARY KEY (stock_id), 
CONSTRAINT foreignKey FOREIGN KEY(stock_register_id) 
REFERENCES stock_register (stock_register_id) 
) 

Это должно быть все, что вам нужно , Вы также должны убедиться, что двигатели таблицы, коллажи и кодировки DB совпадают при использовании внешних ключей.

Для уникальной проблемы ограничения, кажется, не проблема с вашим ПК stock_register_id в таблице stock_register. Основываясь на имени STOCKREGISTER в сообщении об ошибке, я подозреваю, что он не нашел таблицу stock_register в вашем втором операторе Create.

Смежные вопросы