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_lot
ALTER 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 FK4y2qo4m4i8i6axjpc0y44wiy2
ALTER 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_attention
ALTER TABLE `auc_attention` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;
-- auc_brand_no_generator
ALTER TABLE `auc_brand_no_generator` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;
-- auc_image
ALTER TABLE `auc_image` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;
-- settlement_deal
ALTER TABLE `settlement_deal` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;
-- settlement_bail
ALTER TABLE `settlement_bail` MODIFY COLUMN `auc_id` varchar(255) NULL DEFAULT NULL AFTER `id`;

-- announcement_goods
ALTER TABLE announcement_goods DROP FOREIGN KEY FK96cnp94qfcfr3gybrg4x78dh7;
-- announcement
ALTER 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

SQL ALTER TABLE 语句在项目中的使用的更多相关文章

  1. SQL-W3School-高级:SQL ALTER TABLE 语句

    ylbtech-SQL-W3School-高级:SQL ALTER TABLE 语句 1.返回顶部 1. ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. ...

  2. SQL ALTER TABLE 语句

    ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加.修改或删除列. SQL ALTER TABLE 语法 如需在表中添加列,请使用下列语法: ALTER TABLE tab ...

  3. SQL CREATE TABLE 语句\SQL 约束 (Constraints)\SQL NOT NULL 约束\SQL UNIQUE 约束

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  4. SQL ALTER TABLE 命令

    SQL ALTER TABLE 命令 SQL ALTER TABLE 命令用于添加.删除或者更改现有数据表中的列. 你还可以用 ALTER TABLE 命令来添加或者删除现有数据表上的约束. 语法: ...

  5. 翻译:MariaDB ALTER TABLE语句

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. SQL-W3School-高级:SQL CREATE TABLE 语句

    ylbtech-SQL-W3School-高级:SQL CREATE TABLE 语句 1.返回顶部 1. CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL ...

  7. mysql ALTER TABLE语句 语法

    mysql ALTER TABLE语句 语法 作用:用于在已有的表中添加.修改或删除列.无铁芯直线电机 语法:添加列:ALTER TABLE table_name ADD column_name da ...

  8. sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP 'users_ibfk_1'; check that column/key exists") [SQL: ALTER TABLE users DROP FOREIGN KEY users_ibfk_1]

    flask 迁移数据库报错 报错: sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1091, "Can't DROP ...

  9. SQL CREATE TABLE 语句

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

随机推荐

  1. j-link或者swd调试

    两种 一.JTAG调试(5针), 二.SWD调试(2针), 在JTAG/SWD模式设置库函数 (在文件stm32f10x_gpio.c中): void GPIO_PinRemapConfig(uint ...

  2. poj 1698 Alice‘s Chance

    poj 1698  Alice's Chance 题目地址: http://poj.org/problem?id=1698 题意: 演员Alice ,面对n场电影,每场电影拍摄持续w周,每周特定几天拍 ...

  3. linux 配置java 环境

    下载jdk 并解压到 /usr/local/java/ 目录下 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-down ...

  4. inline-block 左边固定,右边自适应

    <body> <div class="col-md-4 left"> <div class="logo">默沙东盲讲< ...

  5. flex布局知识点

    flexBox 布局最合适小规模布局,而网格布局适合较大规模布局. float,clear,vertical-align  在flex中不起作用. flex布局中,有两类作用于父节点也子节点的样式,大 ...

  6. OneThink学习笔记02----数据字典(即OneThink项目数据库里的表及其字段)

    action 字段 类型 注释 id int(11) unsigned 自增主键 name char(30) 行为唯一标识 title char(80) 行为说明 remark char(140) 行 ...

  7. js-JavaScript高级程序设计学习笔记17

    第21章  AJAX AJAX技术的核心是XMLHttpRequest对象.可以使用XHR对象取得新数据,然后通过DOM将新数据插入到页面中.无需刷新页面即可从服务器获得数据. 1.XHR对象. 如果 ...

  8. 【poj2741】 Colored Cubes

    http://poj.org/problem?id=2741 (题目链接) 题意 给出n个骰子,每一面都有一种颜色,问最少更改多少个面的颜色可以使所有骰子通过旋转后完全相同. solution 迷之d ...

  9. Linux学习路线

    为什么要学习Linux? 为什么学Linux,每个人都有自己的理由: Linux是免费的不用花一分钱,能够节约大笔的成本: Linux是开源的,你可以根据自已的需要修改源代码: Linux是开放的,有 ...

  10. [NOIP2012] 普及组

    寻宝 大模拟 #include<iostream> #include<cmath> #include<algorithm> using namespace std; ...