Проблема с сбросом и восстановлением базы данных с СГЕНЕРИРОВАННЫМИ столбцами

#dbeaver

Вопрос:

При создании дампа базы данных с помощью DBeaver он правильно создает GENERATED STORED столбцы, но также создает INSERT INTO инструкцию, в которую он хочет вставить конкретные значения в сгенерированные столбцы (что приводит к ошибкам, поскольку в сгенерированные столбцы не могут быть вставлены данные).

 --
-- Table structure for table `invoice_lines`
--

DROP TABLE IF EXISTS `invoice_lines`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `invoice_lines` (
  `id` int unsigned NOT NULL AUTO_INCREMENT,
  `invoice_id` int unsigned DEFAULT NULL,
  `price_per_unit` double(8,2) unsigned NOT NULL,
  `qty` int unsigned NOT NULL DEFAULT '1',
  `vat_percentage` double(8,2) unsigned NOT NULL,
  `sub_total` double(8,2) unsigned GENERATED ALWAYS AS (round((`price_per_unit` * `qty`),2)) STORED,
  `vat_amount` double(8,2) unsigned GENERATED ALWAYS AS (round(((`sub_total` / 100) * `vat_percentage`),2)) STORED,
  `total` double(8,2) unsigned GENERATED ALWAYS AS (round((`sub_total`   `vat_amount`),2)) STORED,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `invoice_lines_invoice_id_foreign` (`invoice_id`),
  CONSTRAINT `invoice_lines_invoice_id_foreign` FOREIGN KEY (`invoice_id`) REFERENCES `invoices` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `invoice_lines`
--

LOCK TABLES `invoice_lines` WRITE;
/*!40000 ALTER TABLE `invoice_lines` DISABLE KEYS */;
INSERT INTO `invoice_lines` VALUES (1,1,9.95,1,0.00,9.95,0.00,9.95,'2021-05-24 12:00:00','2021-05-24 12:00:00');
/*!40000 ALTER TABLE `invoice_lines` ENABLE KEYS */;
UNLOCK TABLES;
 

Есть ли какой-либо способ устранить или обойти эту проблему? (помимо ручного изменения sql-файла с демпингом)

Комментарии:

1. Если вы не можете найти версию dbeaver, которая правильно обрабатывает сгенерированные столбцы, вам необходимо либо изменить инструмент для сброса базы данных, либо вручную настроить вывод.