SQL ALTER TABLE 語句在專案中的使用

2021-09-07 19:47:33 字數 4017 閱讀 4090

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`;

SQL alter table已有表操作

功能 alter table 語句用於在已有的表中新增 刪除或修改列。alter table table name add column name datatype或者 alter table table name alter column column name datatype如需刪除表中的列,...

語句 switch語句

switch語句的特點如下 1 switch x 被選擇的內容 即x 只能是byte,short,int,char這四種型別 2 備選答案並沒有指定的順序,但是執行肯定是從第乙個case開始的,如果其中有匹配的case,執行完,通過該case的break就結束了switch。如果沒有匹配的case,...

Python while語句,for語句

usr bin python coding utf 8 filename whiletest.py num 23running true while running i int raw input input a number if i num print right running false e...