To determine whether a field exists:
1 DROP PROCEDURE IF EXISTSSchema_change; 2DELIMITER//3 CREATE PROCEDURESchema_change ()BEGIN 4 DECLARECurrentDatabaseVARCHAR( -);5 SELECT DATABASE() intocurrentdatabase;6 IF not EXISTS(SELECT * fromInformation_schema.columnsWHERETable_schema=CurrentDatabase andtable_name= 'Rtc_order' andcolumn_name= 'Ifupsend') Then 7 ALTER TABLERtc_order8 ADD COLUMN' Ifupsend 'BIT not NULL DEFAULT 0COMMENT' upload or not upload';9 END IF; Ten END// One DELIMITER; ACall Schema_change ();
Determine if the index exists:
1 DROP PROCEDURE IF EXISTSSchema_change; 2DELIMITER//3 CREATE PROCEDURESchema_change ()BEGIN 4 DECLARECurrentDatabaseVARCHAR( -);5 SELECT DATABASE() intocurrentdatabase;6 IF not EXISTS(SELECT * fromInformation_schema.Statistics WHERETable_schema=CurrentDatabase andtable_name= 'Rtc_phototype' andIndex_name= 'index_name') Then 7 ALTER TABLE' Rtc_phototype 'ADD INDEXindex_name (' Imgtype ');8 END IF; 9 END// Ten DELIMITER; OneCall Schema_change ();
MySQL determines whether a table field or index exists, and then modifies