在相关表中插入MYSQL

时间:2018-10-03 13:36:29

标签: mysql

我有桌子(简短地说,很少有人错过):

 CREATE TABLE `manufacturers` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
);

CREATE TABLE `clocks` (
`id` INT NOT NULL AUTO_INCREMENT,
`clock_type_id` INT NOT NULL,
`model_name` VARCHAR(45) NOT NULL,
`manufacturer_id` INT NOT NULL,
`cost` DOUBLE(10,2) NOT NULL,
`glass_type_id` INT NOT NULL,
`bracelet_type_id` INT NOT NULL,
`sex_type_id` INT NOT NULL,
`waterproof` boolean NOT NULL DEFAULT FALSE,
`mechanism_type_id` INT,
`touch_screen` boolean,
`telephone_communication` boolean,
PRIMARY KEY (`id`),
FOREIGN KEY (`clock_type_id`) REFERENCES `clock_types`(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE,
FOREIGN KEY (`glass_type_id`) REFERENCES `glass_types`(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE,
FOREIGN KEY (`bracelet_type_id`) REFERENCES `bracelet_types`(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE,
FOREIGN KEY (`sex_type_id`) REFERENCES `sex_types`(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE,
FOREIGN KEY (`mechanism_type_id`) REFERENCES `mechanism_types`(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE
  FOREIGN KEY (`manufacturer_id`) REFERENCES `manufacturers`(id)
  ON DELETE CASCADE
  ON UPDATE CASCADE
);

如果我只知道manufacturer.name却不知道manufacturer.id,如何在一个查询中将时钟插入数据库?保留数据的正确格式,因此我必须按原样将其放入查询中。

1 个答案:

答案 0 :(得分:0)

已编辑

尝试INSERT ... SELECT语句,如下所示:

INSERT
INTO clocks
SELECT NULL, 1, 'rolex-test', m.id, 123.0, 1, 3, 1, 1, 1, null, null
FROM manufacturers AS m
WHERE m.name = 'rolex';