Я работаю над mySql workbench.
Я попытался скопировать структуру таблицы и ее данные и создал другую таблицу с такой же структурой и данными:
CREATE TABLE 'm_syokunin_info_dev'LIKE 'm_syokunin_info';
INSERT 'm_syokunin_info_dev' SELECT * FROM 'm_syokunin_info';
Он успешно скопировал структуру таблицы, но я получил эту ошибку для команды для 2-й строки.
Error Code: 3105. The value specified for generated column 'name' in table 'm_syokunin_info_dev' is not allowed.
Структура таблицы:
CREATE TABLE `m_syokunin_info` (
`id` int(10) unsigned NOT NULL,
`last_name` varchar(45) DEFAULT NULL,
`first_name` varchar(45) DEFAULT NULL,
`han_id` int(10) unsigned DEFAULT NULL,
`syokunin_type_id` int(10) unsigned DEFAULT NULL,
`name` varchar(100) GENERATED ALWAYS AS (concat(`last_name`,' ',`first_name`)) VIRTUAL,
`isDeleted` tinytext,
`seikyu_type_id` int(11) DEFAULT NULL,
`mailadress` varchar(100) DEFAULT NULL,
`group_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`),
KEY `fk_han_id_idx` (`han_id`),
KEY `fk_syokunin_type_id_idx` (`syokunin_type_id`),
CONSTRAINT `fk_han_id` FOREIGN KEY (`han_id`) REFERENCES `m_han` (`id`),
CONSTRAINT `fk_syokunin_type_id` FOREIGN KEY (`syokunin_type_id`) REFERENCES `m_syokunin_type` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ошибка говорит о сгенерированном столбце. Как скопировать данные, отличные от данных, в сгенерированный столбец?
Try1: Я попробовал указать каждый столбец и исключить сгенерированный столбец следующим образом. Но это не работает.
INSERT INTO `gas_db`.`m_syokunin_info_dev`
(`id`,
`last_name`,
`first_name`,
`han_id`,
`syokunin_type_id`,
`isDeleted`,
`seikyu_type_id`,
`mailadress`,
`group_id`)
VALUES
(select `id`,
`last_name`,
`first_name`,
`han_id`,
`syokunin_type_id`,
`isDeleted`,
`seikyu_type_id`,
`mailadress`,
`group_id`
FROM `gas_db`.'m_syokunin_info');
Try2: Я пытаюсь выполнить следующее sql, но возникает синтаксическая ошибка. Почему?
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''m_syokunin_info'' at line 20
INSERT `gas_db`.`m_syokunin_info_dev`
(`id`,
`last_name`,
`first_name`,
`han_id`,
`syokunin_type_id`,
`isDeleted`,
`seikyu_type_id`,
`mailadress`,
`group_id`)
SELECT `id`,
`last_name`,
`first_name`,
`han_id`,
`syokunin_type_id`,
`isDeleted`,
`seikyu_type_id`,
`mailadress`,
`group_id`
FROM `gas_db`.'m_syokunin_info';