Doctrine2, Mysql, virtuální sloupec rubrika: Databáze: SQL
Zdravím.
Používám Doctrine2 s MySQL. Mám virtuální sloupec nějak takto:
ALTER TABLE `table` ADD `col` decimal(15,5) GENERATED ALWAYS AS (`col1` + `col2`) VIRTUAL;
Metadata mám uložené v yml souborech (deprecated, vím):
col: type: decimal precision: 15 scale: 5 options: generated: (col1 + col2) virtuality: virtual comment: komentář
Zlobí to, protože to chce ukládat i do tohoto sloupce:
"An exception occurred while executing 'INSERT INTO ...: SQLSTATE[HY000]: General error: 3105 The value specified for generated column 'col' in table 'table' is not allowed."
Poradíte prosím co s tím?
Mé znalosti Doctrine jsou omezené. Takže odhaduji, že buď mám špatně nastavené, nebo by šlo explicitně zakázat ukládat nějaký sloupec, nebo něco jiného.
Předem díky.
Tak řešení je ve skutečnosti docela jednoduché.
V prvé řadě musím začít myslet.
Pokud nechci, aby Doctrine ty sloupce ukládala, tak je vůbec nebudu psát do těch metadat. Getter si vytvořit můžu, to jí nevadí, a akorád do něj zduplikuju tu logiku, kterou mám v tom virtuálním sloupci. Tím je splněno, že sloupec v databázi bude, atribut entity taky, a virtuální sloupec se neukládá - vyřešeno.
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře