Sql server 引用的表中没有主键或候选键';酒店';与外键';fk#U客房酒店';
你好,有人能帮我解决这个错误吗。我只是在学习SQL,不知道如何修复它。 它表示引用的表“hotel”中没有与外键“fk_rooms_hotel”中的引用列列表匹配的主键或候选键Sql server 引用的表中没有主键或候选键';酒店';与外键';fk#U客房酒店';,sql-server,Sql Server,你好,有人能帮我解决这个错误吗。我只是在学习SQL,不知道如何修复它。 它表示引用的表“hotel”中没有与外键“fk_rooms_hotel”中的引用列列表匹配的主键或候选键 CREATE database Hotel_database; USE Hotel_database; -- Table `addresses` CREATE TABLE addresses ( address_id INT PRIMARY KEY NOT NULL , address_line1 VARC
CREATE database Hotel_database;
USE Hotel_database;
-- Table `addresses`
CREATE TABLE addresses (
address_id INT PRIMARY KEY NOT NULL ,
address_line1 VARCHAR(100) NULL,
address_line2 VARCHAR(100) NULL,
city VARCHAR(45) NULL,
state VARCHAR(45) NULL,
country VARCHAR(45) NULL,
zipcode VARCHAR(8) NULL,
);
-- -----------------------------------------------------
-- Table `hotel_database`.`hotel_chain`
-- -----------------------------------------------------
CREATE TABLE hotel_chain (
hotel_chain_id INT NOT NULL,
hotel_chain_name VARCHAR(45) NULL,
hotel_chain_contact_number VARCHAR(12) NULL,
hotel_chain_email_address VARCHAR(45) NULL,
PRIMARY KEY (hotel_chain_id)
);
------------------------------------------------
-- Table `hotel`
-- -----------------------------------------------------
CREATE TABLE hotel (
hotel_id INT NOT NULL,
hotel_name VARCHAR(45) NULL,
hotel_contact_number VARCHAR(12) NULL,
hotel_email_address VARCHAR(45) NULL,
hotel_website VARCHAR(45) NULL,
hotel_description VARCHAR(100) NULL,
hotel_floor_count INT NULL,
hotel_room_capacity INT NULL,
hotel_chain_id INT NULL,
addresses_address_id INT NOT NULL,
check_in_time TIME NULL,
check_out_time TIME NULL,
PRIMARY KEY (hotel_id, addresses_address_id),
CONSTRAINT fk_hotel_addresses
FOREIGN KEY (addresses_address_id)
REFERENCES addresses (address_id)
);
-- -----------------------------------------------------
-- Table room_type
-- -----------------------------------------------------
CREATE TABLE room_type (
room_type_id INT NOT NULL,
room_type_name VARCHAR(45) NULL,
room_cost DECIMAL(10,2) NULL,
room_type_description VARCHAR(100) NULL,
PRIMARY KEY (room_type_id)
);
-- -----------------------------------------------------
-- Table rooms
-- -----------------------------------------------------
CREATE TABLE rooms (
room_id INT NOT NULL,
room_number INT NULL,
rooms_type_rooms_type_id INT NOT NULL,
hotel_hotel_id INT NOT NULL,
PRIMARY KEY (room_id, rooms_type_rooms_type_id, hotel_hotel_id),
CONSTRAINT fk_rooms_hotel
FOREIGN KEY (hotel_hotel_id)
REFERENCES hotel (hotel_id),
CONSTRAINT fk_rooms_rooms_type1
FOREIGN KEY (rooms_type_rooms_type_id)
REFERENCES room_type (room_type_id)
);
hotel的主键当前为(hotel\u id,addresses\u address\u id),因此您不能仅在(hotel\u id)上的外键中引用它。您可能需要将hotel的主键更改为just(hotel_id)。该消息是解释性的。在已指定fk_rooms_hotel外键的创建表'rooms'DDL中,表'hotel'不包含列hotel_id。可能它的名称有所不同?是的。在答案中修正了它。