Как исправить эту ошибку "ошибка: нет уникального ограничения, соответствующего заданным ключам для ссылочной таблицы "инвентаризация""
CREATE TABLE INVENTORY( machine_name VARCHAR(25) UNIQUE, --ip_address WILL NEVER BE LONGER THAN 15 CHARACTERS BASED OF THE IP ADDRESS FORMAT ip_address CHAR(15) NOT NULL, --network_port WILL NEVER BE LONGER THAN 6 CHARACTERS BASED OF THE NETWORK PORT FORMAT network_port CHAR(6) NOT NULL, --mac_address WILL NEVER BE LONGER THAN 17 CHARACTERS BASED OF THE MAC ADDRESS FORMAT mac_address CHAR(17) NOT NULL, location_id VARCHAR(3) NOT NULL, CONSTRAINT pk_INVENTORY PRIMARY KEY(machine_name,ip_address, network_port, mac_address), CONSTRAINT fk_INVENTORY FOREIGN KEY (location_id) REFERENCES LOCATIONS(location_id) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE TICKETS( ticket_number INT, owner_pplSoft INT NOT NULL, date_submitted DATE NOT NULL, date_closed DATE NOT NULL, --DATEDIFF() WILL BE USED HERE TO GET THE INT VALUE days_worked_on INT NOT NULL, category_id INT NOT NULL, machine_name VARCHAR(25) NOT NULL, location VARCHAR(10) NOT NULL, description VARCHAR(280), CONSTRAINT pk_TICKETS PRIMARY KEY(ticket_number), CONSTRAINT fk_1_TICKETS FOREIGN KEY (owner_pplSoft) REFERENCES USERS(pplSoft) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_2_TICKETS FOREIGN KEY (category_id) REFERENCES CATEGORIES(category_id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_3_TICKETS FOREIGN KEY (machine_name) REFERENCES INVENTORY(machine_name) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_4_TICKETS FOREIGN KEY (location) REFERENCES LOCATIONS(location) ON DELETE CASCADE ON UPDATE CASCADE );
Что я уже пробовал:
я попытался добавить ограничение unique к переменной machine_name в отношении инвентаризации.
Sandeep Mewara
С вышеперечисленными двумя столами - я вижу их нормально. Предполагая, что ошибка связана с созданием билетов таблицы только при совместном использовании:
Попробуй:
machine_name VARCHAR(25), CONSTRAINT unique_machine_name UNIQUE(machine_name)
Я не уверен - я думаю, что это из-за нескольких первичных ключей или что-то связанное с местоположениями FK для обеих таблиц. Странно, что одно место у вас есть на ID, а другое нет. Если вышеописанное не решает проблемы, попробуйте удалить местоположение FK один раз и посмотреть.