To determine whether a field exists:
1DROP PROCEDURE IF EXISTS schema_change; 2DELIMITER// 3CREATE PROCEDURE schema_change () BEGIN4DECLARE CurrentDatabase VARCHAR ( -); 5SELECT DATABASE () into currentdatabase;6IF not EXISTS (SELECT * from Information_schema.columns WHERE table_schema=currentdatabase and table_name ='Rtc_order'and column_name ='Ifupsend') Then7ALTER TABLE Rtc_order8ADD COLUMN ' ifupsend ' BIT not NULL DEFAULT0COMMENT' upload or not upload'; 9END IF; TenEND// OneDELIMITER; ACall Schema_change ();
Determine if the index exists:
1DROP PROCEDURE IF EXISTS schema_change;2 DELIMITER//3CREATE PROCEDURE Schema_change () BEGIN4 DECLARE currentdatabase VARCHAR (100);5 select DATABASE () into currentdatabase; 6 IF not EXISTS (SELECT * from Information_schema.statistics WHERE table_schema= CurrentDatabase and table_name = "rtc_phototype ' and index_name = ' index_name ' 7 ALTER TABLE ' Rtc_phototype ' ADD INDEX index_name (' Imgtype '); 8 END IF; 9 end//10 DELIMITER; 11 call Schema_change ();
From these two paragraphs can see a lot of things, specifically can test their own
MySQL determines whether a table field or index exists