Portál AbcLinuxu, 27. října 2025 17:46
IF NOT EXISTS
(SELECT * FROM `information_schema`.`COLUMNS` WHERE `TABLE_SCHEMA` = 'databaze' AND `TABLE_NAME` = 'tabulka' AND `COLUMN_NAME` = 'pokus' )
THEN
ALTER TABLE `databaze`.`tabulka` ADD pokus INT(10) NOT NULL DEFAULT '0';
END IF;
Pokud zkusím SELECT nebo ALTER TABLE zvlášť, tak se příkaz provede, ale netuším jak udělat, aby se přidal pouze pokud sloupec neexistuje.
MySQL 5.6.30-1~bpo8+1 - (Debian)
Předem děkuji za rady.
use databaze; select count(*) into @exist from information_schema.columns where table_schema='databaze' and table_name='tabulka' and column_name='pokus'; set @query = IF(@exist <= 0, 'alter table tabulka add column pokus int(10) not null', 'select \'sloupec existuje\' as status'); prepare statement from @query; execute statement;Samozrejme to, co pise Kufner je docela rozumny...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.