Я думаю, вам следует изменить структуру таблицы, чтобы упростить выполнение ваших запросов в будущем, например, добавление первичного ключа поможет вам отслеживать ваши записи
CREATE TABLE `test`.`book` (
`id` INT NOT NULL AUTO_INCREMENT,
`isbn` VARCHAR(100) NOT NULL,
`copy` INT NULL,
`gener` VARCHAR(45) NULL,
`title` VARCHAR(100) NULL,
`pdate` DATETIME NULL,
`publisher` VARCHAR(45) NULL,
`size` INT NULL DEFAULT NULL,
PRIMARY KEY (`id`))
ENGINE = InnoDB;
CREATE TABLE `test`.`author` (
`id` INT NOT NULL AUTO_INCREMENT,
`book_id` INT NULL,
`af` VARCHAR(45) NULL,
`am` VARCHAR(45) NULL,
`al` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
INDEX `author_book_id_idx` (`book_id` ASC),
CONSTRAINT `author_book_id`
FOREIGN KEY (`book_id`)
REFERENCES `test`.`book` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
INSERT INTO `book` (`id`, `isbn`, `copy`, `gener`, `title`, `pdate`, `publisher`, `size`) VALUES (NULL, 'test2', '2', 'math', 'test2', '2019-05-06 00:00:00', 'test', '2');
insert into author (`book_id`,`af`,`am`,`al`) select max(id),'test af','test am','test al' from book;
Лучшая структура состоит в том, чтобы связать каждую книгу с ее автором, а не наоборот, поскольку у каждого автора может быть более одной книги
CREATE TABLE `test`.`book` (
`id` INT NOT NULL AUTO_INCREMENT,
`isbn` VARCHAR(100) NOT NULL,
`copy` INT NULL,
`gener` VARCHAR(45) NULL,
`title` VARCHAR(100) NULL,
`pdate` DATETIME NULL,
`publisher` VARCHAR(45) NULL,
`size` INT NULL DEFAULT NULL,
`author_id` INT NULL,
PRIMARY KEY (`id`)),
CONSTRAINT `author_book_id`
FOREIGN KEY (`author_id`)
REFERENCES `test`.`author` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
редактирование:
если вы не хотите заново создавать таблицы, вы можете просто изменить таблицу книг
ALTER TABLE `test`.`book`
ADD COLUMN `created_at` DATETIME NULL AFTER `size`;
и вставка должна выглядеть как
insert into author (`isbn`, `copy`,`af`,`am`,`al`) select isbn, copy,'test af','test am','test al' from book where created_at=(select max(created_at) from book );