Výchozí hodnota pro BLOB/TEXT

Vyřešeno145 zhlédnutíWebhosting
0

Dobrý den,

chtěl jsem přidat sloupec do tabulky s výchozí hodnotou (viz dotaz níže), ale odmítne mě to s chybou. Lze s tím něco udělat? Výchozí hodnotu potřebuji, jelikož s tabulkou pracují dřívější dotazy, které o novém sloupci neví a nedoplní mu hodnotu při novém záznamu.

BLOB/TEXT column ‚column_xy ‚ can’t have a default value

<span class="jush"><span class="jush-sql_code"><a class="jush-help" href="https://mariadb.com/kb/en/library/alter-table/" target="_blank" rel="noreferrer noopener">ALTER TABLE</a> <a class="jush-custom" href="https://adminer.ovachamp.cz/?server=md33.wedos.net&username=a203760_vyvoj&db=d203760_vyvoj&table=privilege">t</a>able_xy <a target="_blank" rel="noreferrer noopener">ADD</a> column_xy <a class="jush-help" href="https://mariadb.com/kb/en/library/string-type-overview/" target="_blank" rel="noreferrer noopener">LONGTEXT</a> <a target="_blank" rel="noreferrer noopener">DEFAULT</a> <span class="jush-sql_apo"><span class="jush-op">'</span>a:0:{}<span class="jush-op">'</span></span> <a class="jush-help" href="https://mariadb.com/kb/en/library/logical-operators/#operator_not" target="_blank" rel="noreferrer noopener">NOT</a> <a target="_blank" rel="noreferrer noopener">NULL</a> COMMENT <span class="jush-sql_apo"><span class="jush-op">'</span>(DC2Type:array)<span class="jush-op">'</span></span><span class="jush-op">;</span></span></span>
Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
Vybral nejlepší odpověď
0

Pri textových poliach netreba default value, pri inserte sa pole vytvorí prázdne: ALTER TABLE table_xy ADD column_xy TEXT NOT NULL

Role: Zákazník+ Web: https://www.mitsoft.sk Vizitka: Venujem sa programovaniu, optimalizácií a affiliate. Poradím Vám s DNS záznamami, htaccess, wordpressom, linuxom, php, sql a všeobecne s webovými technológiami.
Vybral nejlepší odpověď

Pokud má sloupec představovat doctrine 2 pole, tak následně vrací špatné hodnoty (false), pokud je prázdný.

Takže výchozí hodnota v tomto případě je na místě.

Blob a textové polia nemajú default value. Dá sa to vyriešiť triggerom, ktorý po inserte naplní v poli defaultnú hodnotu (približne takto):
create trigger my_trigger before insert on my_table
for each row
begin
if (NEW.my_column is null ) then
set NEW.my_column = ‚default text‘;
end if;
end

Trigger mě napadl také, ale není to zrovna nejlepší řešení. Blob a textové výchozí hodnoty mít můžou, jen to musí být nastaveno v nastavení DB.

Každopádně jsem to nejspíše vyřešil nastavením hodnoty na NULL (odebral jsem NOT NULL) a správné vracení hodnot ošetřil přímo u dané entity (pokud není pole, tak nastav prázdné pole).

Prohlížíte 1 ze 2 odpovědí, klikněte zde pro zobrazení všech odpovědí.

Categories