#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, которая правильно обрабатывает сгенерированные столбцы, вам необходимо либо изменить инструмент для сброса базы данных, либо вручную настроить вывод.