1.在实际的项目开发过程中,之前已经创建好的实体类可能需要增加/删除字段,亦或是更改已有字段的属性,比如主键的增长策略从自增型改为UUID型,那么就会涉及到
SQL 中 alter table 语句的使用。
ALTER TABLE table_name ADD column_name datatype 增加表中的列
ALTER TABLE table_name DROP COLUMN column_name 删除表中的列
ALTER TABLE table_name ALTER COLUMN column_name datatype 改变表中的列的数据类型
ALTER TABLE Persons ADD Birthday date
ALTER TABLE Persons ALTER COLUMN Birthday year
ALTER TABLE Person DROP COLUMN Birthday 实际项目中的代码:
!-- Customer entity添加以下字段
alter table sys_customer add business_license_no varchar(100);alter table sys_customer add organization_no varchar(100);alter table sys_customer add business_scope varchar(100);alter table sys_customer add legal_representative varchar(100);alter table sys_customer add legal_representative_card varchar(100);alter table sys_customer add customer_address varchar(100);alter table sys_customer add post_code varchar(100);
!-- 创建用户收货地址记录实体,2016/11/29 11:30
CREATE TABLE `customer_receive_address` (`id` varchar(255) NOT NULL,`address` varchar(255) DEFAULT NULL,`area` varchar(255) DEFAULT NULL,`crt_time` datetime DEFAULT NULL,`crt_user_id` bigint(20) DEFAULT NULL,`crt_user_name` varchar(255) DEFAULT NULL,`customer_id` bigint(20) DEFAULT NULL,`is_main` bit(1) NOT NULL,`name` varchar(255) DEFAULT NULL,`phone_num` varchar(255) DEFAULT NULL,`postcode` varchar(255) DEFAULT NULL,`upd_time` datetime DEFAULT NULL,`upd_user_id` bigint(20) DEFAULT NULL,`upd_user_name` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`),KEY `FK1tulmarjqlerfxuvudw36b2v3` (`customer_id`),CONSTRAINT `FK1tulmarjqlerfxuvudw36b2v3` FOREIGN KEY (`customer_id`) REFERENCES `sys_customer` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.实际项目中,一些配置实体的信息,发布时候,添加的一些数据插入语句
-- ----------------------------
-- 配置信息表数据 2016-11-11 18:40-- ----------------------------INSERT INTO `auc_settings` VALUES ('1', 'smtpHost', 'email', '发送邮件的服务器地址', 'smtp.163.com');INSERT INTO `auc_settings` VALUES ('2', 'title', 'email', '发送邮件的标题', '邮箱验证');INSERT INTO `auc_settings` VALUES ('13', 'smsTplCode', 'sms', '阿里大鱼模板编号', 'SMS_6740890');INSERT INTO `auc_settings` VALUES ('14', 'smsType', 'sms', '阿里大鱼短信类型', 'normal');
3.如果更改或删除的列与其他的表之间存在外键的关系的时候,这种关系需要怎样去维护呢?
-- 2016-11-29 2016-12-01 修改主键id 类型
-- auc_lotALTER TABLE `auc_lot` MODIFY COLUMN `id` varchar(255) NOT NULL FIRST ;ALTER TABLE auc_brand DROP FOREIGN KEY FK279hokw2vi5cy63b77hg9qxlt
ALTER TABLE auc_price DROP FOREIGN KEY FK4y2qo4m4i8i6axjpc0y44wiy2ALTER TABLE auc_image DROP FOREIGN KEY FKe3ygrs9ub7pau5rgl2e17jp8-- announcement_goods
ALTER TABLE `announcement_goods` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `announcement_id`;-- auc_attentionALTER TABLE `auc_attention` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;-- auc_brand_no_generatorALTER TABLE `auc_brand_no_generator` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;-- auc_imageALTER TABLE `auc_image` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;-- settlement_dealALTER TABLE `settlement_deal` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;-- settlement_bailALTER TABLE `settlement_bail` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;-- announcement_goods
ALTER TABLE announcement_goods DROP FOREIGN KEY FK96cnp94qfcfr3gybrg4x78dh7;-- announcementALTER TABLE `announcement` MODIFY COLUMN `id` varchar(255) NOT NULL FIRST ;ALTER TABLE `announcement_goods` MODIFY COLUMN `announcement_id` varchar(255) NULL DEFAULT NULL AFTER `id`;
文献的参考链接:http://www.w3school.com.cn/sql/sql_alter.asp