SQL ALTER TABLE 語句在項目中的使用


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM