数据库表添加新字段(支持重复执行)
Posted kiko2014551511
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库表添加新字段(支持重复执行)相关的知识,希望对你有一定的参考价值。
Oracle
DECLARE COLEXIST NUMBER; BEGIN SELECT COUNT(1) INTO COLEXIST FROM USER_TAB_COLUMNS WHERE TABLE_NAME=UPPER(‘HISTORY‘) AND COLUMN_NAME=UPPER(‘NAME‘);--判断列是否存在 IF COLEXIST = 0 THEN --如果不存在,进行创建 EXECUTE IMMEDIATE ‘ALTER TABLE HISTORY ADD NAME VARCHAR(64) DEFAULT (‘‘ ‘‘) NOT NULL‘; END IF ; END; /
DELIMITER ;; DROP PROCEDURE IF EXISTS COLUMNADD; CREATE DEFINER=`root`@`%` PROCEDURE `COLUMNADD`(TBNAME VARCHAR(30),COLNAME VARCHAR(32),COLTYPE VARCHAR(64)) BEGIN DECLARE P_STR VARCHAR(300); IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=DATABASE() AND TABLE_NAME = TBNAME AND COLUMN_NAME =COLNAME) THEN -- 判断列是否存在 SET P_STR= CONCAT(‘ALTER TABLE ‘,TBNAME,‘ ADD ‘,COLNAME ,‘ ‘,COLTYPE); SET @SQL = P_STR; PREPARE STMT FROM @SQL; EXECUTE STMT; DEALLOCATE PREPARE STMT; END IF; END;; DELIMITER ; -- 调用该存储过程 CALL COLUMNADD(‘LF_WCD_P1‘,‘WCD_URLP1‘,‘VARCHAR(64) NOT NULL DEFAULT ‘‘‘‘‘);
以上是关于数据库表添加新字段(支持重复执行)的主要内容,如果未能解决你的问题,请参考以下文章
使用 FireDac 仅更新重复行中的 1 个(无主键或唯一字段)
MYSQL插入数据INSERT INTO时如何检测某字段重复后再决定是不是执行?
mysql在创建表的时候可以创建字段那么创建新数据库的时候可以顺便创建表吗