【发布时间】:2020-04-04 16:25:20
【问题描述】:
我正在编写一个酒店数据库,我有一个关于 DATEDIFF 函数的问题。我有一张桌子,上面有客人 ID、到达日期、出发时间,我希望 DATEDIFF(出发、到达)写在同一张表的另一列中。我怎样才能做到这一点?我试着做两张表,但它工作了一次,当我添加另一个客人时,每次都会弹出主键重复错误。
当我创建空列“长度”并尝试在此列中保存选择时显示错误。 代码: 插入预订(length_of_stay)从预订中选择 DATEDIFF(出发,到达); 错误:
Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (`input_qt_plus`.`reservations`, CONSTRAINT `fk_reservations_guests` FOREIGN KEY (`guests_id_guests`) REFERENCES `guests` (`id_guests`) ON DELETE NO ACTION ON UPDATE NO ACTION)
表格:
这是一张有客人的桌子:
CREATE TABLE IF NOT EXISTS `input_qt_plus`.`guests` (
`id_guests` INT NOT NULL AUTO_INCREMENT,
`first_name` VARCHAR(45) NOT NULL,
`last_name` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`phone` VARCHAR(45) NOT NULL,
`id_num` VARCHAR(45) NULL,
PRIMARY KEY (`id_guests`))
ENGINE = InnoDB;
这是一张有保留的桌子:
CREATE TABLE IF NOT EXISTS `input_qt_plus`.`reservations` (
`id_res` INT NOT NULL AUTO_INCREMENT,
`guests_id_guests` INT NOT NULL,
`arrival` DATE NOT NULL,
`departure` DATE NOT NULL,
PRIMARY KEY (`id_res`),
INDEX `fk_reservations_guests_idx` (`guests_id_guests` ASC),
CONSTRAINT `fk_reservations_guests`
FOREIGN KEY (`guests_id_guests`)
REFERENCES `input_qt_plus`.`guests` (`id_guests`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
【问题讨论】:
-
请添加您的表定义和导致重复键错误的步骤。
标签: mysql mysql-workbench mysql-error-1064